1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zcltd-btg-btg-set

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Проект btg-set

Проект btg-set

Проект btg-set использует файлы в форматах .json, .xml и базу данных для сохранения конфигурации проекта. Он обеспечивает независимое управление конфигурацией через веб-страницу и мониторинг изменений конфигурации с помощью обратного вызова. Это позволяет избежать частых изменений конфигурационных файлов при запуске проекта и упрощает управление конфигурациями и перенос между различными средами разработки.

Структура исходного кода

  • Исключения: плагин предоставляет пользовательские исключения.
  • Core:
    • Классы Config, Module, Param и другие представляют собой ядро системы и определяют основные структуры данных и часто используемые API для управления конфигурацией.
    • Класс ConfigManager является одноэлементным и предоставляет статические методы доступа. Он также реализует интерфейс ParamGetter, который определяет ряд методов getXXX для удобного получения параметров различных типов.
    • BtgSet — это класс, предоставляющий доступ к функциям ConfigManager.
  • Sourcemanager: через интерфейс SourceManager определяется стандартный подход к управлению конфигурационным менеджером для BtgSet. В проекте предусмотрены три реализации: JsonFileSourceManager, XmlFileSourceManager и db.
    • JsonFileSourceManager управляет конфигурацией, используя каталог, где каждому файлу config соответствует файл .json.
    • XmlFileSourceManager работает аналогично, но использует файлы .xml.
    • db использует реляционную базу данных для управления конфигурацией. DbSourceManager обеспечивает поддержку этого подхода.
      • Dialect — пакет, содержащий реализации для различных диалектов реляционных баз данных. Dialect является абстрактным классом, и различные реализации могут быть добавлены для поддержки новых диалектов.
  • Adaptor: предоставляет поддержку событийного мониторинга. Расширение класса EventAdapter позволяет настраивать обработку событий.
  • Util: набор инструментов для плагина.
  • Token: классы, связанные с генерацией и анализом токенов.
  • Servlet: поддержка для среды сервлетов и веб-страниц, а также JSON API. BtgServlet является точкой входа для контейнера сервлетов.
    • API: реализация JSON API.
    • Web: статические ресурсы, такие как HTML, JS и CSS, используемые в среде сервлетов.

Сторонние зависимости

  1. slf4j: используется для логирования (можно выбрать jdk log, log4j или commons log).
  2. junit: используется в тестовых классах (не обязательно в производственной среде).
  3. jdbc: требуется для использования с DbSourceManager.
  4. fastjson: необходим для работы с JsonFileSourceManager.
  5. dom4j: требуется для XmlFileSourceManager.
  6. jsonApi: зависит от среды веб-сервлетов.

Использование

// Создание конфигурации
Config config1 = Config.createConfig("config1", "Конфигурация 1");
config1.setDesc("Создание конфигурации для демонстрации");

// Создание прямого параметра конфигурации
Param config1Param1 = config1.createParam("config1_param1", "Прямой параметр конфигурации 1", ParamType.String, "config1_value1");
config1Param1.setDesc("Демонстрация создания прямого параметра конфигурации");

// Создание модуля конфигурации
Module config1Module1 = config1.createModule("config1_module1", "Модуль конфигурации 1");
config1Module1.setDesc("Демонстрация создания модуля конфигурации");

// Создание параметра модуля конфигурации
Param config1Module1Param1 = config1Module1.createParam("config1_module1_param1", "Параметр модуля конфигурации 1", ParamType.Integer, "config1_module1_value1");
config1Module1Param1.setDesc("Демонстрация создания параметра модуля конфигурации");

// Встроенная поддержка JSON и XML (классы Param, Module и Config реализуют интерфейсы ToJson и ToXml, имеют методы toJson() и toXml(), а также переопределяют метод toString() для вызова toJson(), что позволяет использовать toString() для получения JSON)
String jsonStrConfig1 = config1.toJson();
String jsonStrConfig1Param1 = config1Param1.toJson();
String jsonStrConfig1Module1 = config1Module1.toJson();
String jsonStrConfig1Module1Param1 = config1Module1Param1.toJson();
String xmlStrConfig1 = config1.toXml();
String xmlStrConfig1Param1 = config1Param1.toXml();
String xmlStrConfig1Module1 = config1Module1.toXml();
String xmlStrConfig1Module1Param1 = config1Module1Param1.toXml();

// Вывод на печать
System.out.println();
System.out.println("jsonStrConfig1:\r\n" + jsonStrConfig1);
System.out.println("jsonStrConfig1Param1:\n" + jsonStrConfig1Param1);
System.out.println("jsonStrConfig1Module1:\n" + jsonStrConfig1Module1);
System.out.println("jsonStrConfig1Module1Param1:\n" + jsonStrConfig1Module1Param1);
System.out.println("xmlStrConfig1:\n" + xmlStrConfig1);
System.out.println("xmlStrConfig1Param1:\n" + xmlStrConfig1Param1);
System.out.println("xmlStrConfig1Module1:\n" + xmlStrConfig1Module1);
System.out.println("xmlStrConfig1Module1Param1:\n" + xmlStrConfig1Module1Param1);
``` **param:config1>config1_module1>config1_module1_param1**

jsonStrConfig1:
{
    "id": "config1",
    "name": "配置1",
    "desc": "配置创建demo",
    "params": [
        {
            "id": "config1_param1",
            "type": "String",
            "datePattern": "",
            "name": "配置1直属配置项1",
            "value": "config1_value1",
            "desc": "配置直属配置项创建演示",
            "remark": ""
        }
    ],
    "modules": [
        {
            "id": "config1_module1",
            "name": "配置1模块1",
            "desc": "配置模块创建演示",
            "params": [
                {
                    "id": "config1_module1_param1",
                    "type": "Integer",
                    "datePattern": "",
                    "name": "配置1模块1配置项1",
                    "value": "config1_module1_value1",
                    "desc": "配置模块配置项创建演示",
                    "remark": ""
                }
            ]
        }
    ]
}

jsonStrConfig1Param1:
{
    "id": "config1_param1",
    "type": "String",,
    "datePattern": "",
    "name": "配置1直属配置项1",
    "value": "config1_value1",
    "desc": "配置直属配置项创建演示",
    "remark": ""
}

jsonStrConfig1Module1:
{
    "id": "config1_module1",
    "name": "配置1模块1",
    "desc": "配置模块创建演示",
    "params": [
        {
            "id": "config1_module1_param1",
            "type": "Integer",
            "datePattern": "",
            "name": "配置1模块1配置项1",
            "value": "config1_module1_value1",
            "desc": "配置模块配置项创建演示",
            "remark": ""
        }
    ]
}

jsonStrConfig1Module1Param1:
{
    "id": "config1_module1_param1",
    "type": "Integer",
    "datePattern": "",
    "name": "配置1模块1配置项1",
    "value": "config1_module1_value1",
    "desc": "配置模块配置项创建演示",
    "remark": ""
}

xmlStrConfig1:
<?xml version="1.0" encoding="UTF-8"?>
<config id="config1" name="配置1" desc="配置创建demo">
    <param id="config1_param1" type="String" name="配置1直属配置项1" desc="配置直属配置项创建演示"><![CDATA[config1_value1]]></param>
    <module id="config1_module1" name="配置1模块1" desc="配置模块创建演示">
        <param id="config1_module1_param1" type="Integer" name="配置1模块1配置项1" desc="配置模块配置项创建演示"><![CDATA[config1_module1_value1]]></param>
    </module>
</config>

xmlStrConfig1Param1:
<param id="config1_param1" type="String" name="配置1直属配置项1" desc="配置直属配置项创建演示"><![CDATA[config1_value1]]></param>

xmlStrConfig1Module1:
<module id="config1_module1" name="配置1模块1" desc="配置模块创建演示">
    <param id="config1_module1_param1" type="Integer" name="配置1模块1配置项1" desc="配置模块配置项创建演示"><![CDATA[config1_module1_value1]]></param>
</module>

xmlStrConfig1Module1Param1:
<param id="config1_module1_param1" type="Integer" name="配置1模块1配置项1" desc="配置模块配置项创建演示"><![CDATA[config1_module1_value1]]></param>

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/zcltd-btg-btg-set.git
git@api.gitlife.ru:oschina-mirror/zcltd-btg-btg-set.git
oschina-mirror
zcltd-btg-btg-set
zcltd-btg-btg-set
master