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

OSCHINA-MIRROR/nepxion-Skeleton

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

Win10 конфигурация:

https://github.com/Nepxion/Thunder/tree/master/thunder-spring-boot-docker-example

«Win10 Docker развёртывание» -> «Подготовка к работе перед развёртыванием»:

— Mac конфигурация: http://www.liumapp.com/articles/2017/12/27/1514347974172.html.

В корневом каталоге выполните команды из файлов install-docker.bat или install-docker.sh, чтобы одним действием создать образ и контейнер.

Запустите Swagger, чтобы проверить работу: в браузере введите http://localhost:2222/swagger-ui.html, чтобы получить доступ.

Развёртывание клиента:

— Загрузите код с https://github.com/Nepxion/DiscoveryUI.

— В корне выполните команду npm install, после завершения выполните npm run dev, для получения дополнительной информации обратитесь к файлу README.md в этом каталоге.

— Введите http://localhost:7777/ в браузере, чтобы получить доступ.

Вторичная разработка

Введение

Skeleton Engine — это генератор каркаса, который не зависит от среды Spring, и вы можете использовать его для создания шаблонов любых текстовых файлов в среде Java.

Skeleton Framework — это каркас на основе среды Spring, который абстрагирует конфигурацию и поведение в среде Spring.

Skeleton Service — это платформа для каркаса, объединяющая несколько плагинов для генерации каркаса.

Skeleton Starter — это стартер для каркаса.

Skeleton Plugin Springcloud — это плагин для генерации каркаса на основе Spring Cloud. Вы можете расширить его, создав скелет-плагин-dubbo, скелет-плагин-motan и т. д.

Рисунок 6.

Совместимость

Последняя версия совместима с:

— Spring 4.xx и Spring Boot 1.xx. — Spring 5.xx и Spring Boot 2.xx.

Зависимости

Пакет двигателя
<dependency>
    <groupId>com.nepxion</groupId>
    <artifactId>skeleton-engine</artifactId>
    <version>${skeleton.version}</version>
</dependency>

Пакет фреймворка
<dependency>
    <groupId>com.nepxion</groupId>
    <artifactId>skeleton-framework</artifactId>
    <version>${skeleton.version}</version>
</dependency>

Стартовый пакет
<dependency>
    <groupId>com.nepxion</groupId>
    <artifactId>skeleton-starter</artifactId>
    <version>${skeleton.version}</version>
</dependency>

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

@SpringBootApplication
@EnableSkeleton
@Import(SpringCloudPluginConfiguration.class)
public class SkeletonApplication {
}

Конфигурация

  • skeleton-data.properties (находится в skeleton-plugin-springcloud/src/main/resources/springcloud/config/skeleton-data.properties): используется для описания глобальных конфигурационных значений для файлов шаблонов, значения в этих файлах заменяют динамические переменные в файлах шаблонов (используйте ${} для обозначения). Файл конфигурации содержит обязательные поля productName и basePackage в разделе «Конфигурация проекта», остальные поля можно определить самостоятельно, рекомендуется использовать имена в верблюжьем регистре.

  • skeleton-description.xml (находится в skeleton-plugin-springcloud/src/main/resources/springcloud/config/skeleton-description.xml): используется для описания структуры данных, управляющих интерфейсом, и компонентов макета, значение value в компонентах определяет скелет-data.properties. Разделено на группы и сущности, одна группа содержит несколько сущностей.

  • skeleton-context.properties (находится в skeleton-plugin-springcloud/src/main/resources/springcloud/config/skeleton-context.properties): используется для настройки глобального контекста каркаса. Три файла конфигурации должны находиться в каталоге config.

Правила

  • Один класс Generator соответствует одному файлу шаблона.
  • Предлагаются два способа создания шаблонов: SkeletonFileGenerator и SkeletonJavaGenerator. Первый может создавать файлы любого типа, а второй специально разработан для Java-файлов.
  • Файлы шаблонов (*.template) могут быть размещены двумя способами:
    • В каталоге resources/template (имя каталога должно быть «template»), структура каталогов соответствует первой картинке.
    • Генератор класса и соответствующий файл шаблона должны находиться в одном каталоге (имя каталога перед файлом шаблона должно быть нулевым), структура каталогов соответствует второй картинке.

Рисунок 7.

Рисунок 8.

Плагины

Если несколько каркасных систем развёрнуты на одной платформе, необходимо использовать независимый метод проекта и избегать конфликтов имён классов и файлов конфигурации. Рекомендуется следующее:

  • Имя проекта должно быть xxx-plugin-[имя плагина].
  • Пакет должен быть xx.xx.xx...plugin.[имя плагина].
  • Каталог конфигурации должен быть resources/[имя плагина], а каталог template и каталог конфигурации должны быть помещены ниже.
  • Общий вход каркаса (реализует интерфейс SkeletonService) должен иметь аннотацию @SkeletonPlugin(name="[имя плагина]").
  • Четыре имени плагина должны быть одинаковыми, в этом проекте мы знаем, что имя плагина называется «springcloud». Следуя этому правилу, мы можем расширить другие плагины каркаса, такие как скелет-плагин-дубо и скелет-плагин-мотан.
  • Имя плагина будет использоваться в интерфейсе SkeletonController.

Если каркасная система развёрнута на одной платформе, то нет необходимости в такой тщательной проработке. Рекомендуется следующее:

  • Общий вход каркаса (реализующий интерфейс SkeletonService) имеет аннотацию @SkeletonPlugin.

Рисунок 7.

Рисунок 8.

Пример

Локальное использование: запустите SkeletonTest.java в папке skeleton-plugin-springcloud/src/test/java/com.nepxion.skeleton.plugin.springcloud, чтобы создать каркас локально, конкретные инструкции см. в комментариях к классу.

Использование Spring Cloud: файл конфигурации Spring Cloud находится в skeleton-service/src/main/resources/application.properties. Интерфейс Cloud, см. skeleton-framework/src/main/java/com.nepxion.skeleton.framework.controller.SkeletonController.java:

  • Получение интерфейса списка плагинов скелета:
@RequestMapping(value = "/getPlugins", method = RequestMethod.GET)
public List<String> getPlugins();
  • Получение метаданных интерфейса по умолчанию для драйвера экрана:
@RequestMapping(value = "/getMetaData", method = RequestMethod.GET)
public List<SkeletonGroup> getMetaData();

Возвращается файл в формате JSON:

[
  {
    "key": "project", // 组所对应的唯一Key
    "label": "工程配置", // 组的标签
    "description": "工程配置", // 组的描述
    "type": "MIX_GROUP", // 组的类型, включая MIX_GROUP (по умолчанию, компоненты любой категории могут быть помещены в группу, смешанная группа), CHECKBOX_GROUP (в группе могут быть размещены только флажки), RADIO_GROUP (в группе могут быть размещены только радиокнопки), COMBOBOX_GROUP (в группе могут быть размещены только поля со списком)
    "layout": "VERTICAL", // 布局方式 для группы, включая VERTICAL (по умолчанию, компоненты в группе расположены вертикально), HORIZONTAL (компоненты в группе расположены горизонтально)
    "titledBorder": "true", // требуется ли отображать заголовок группы (отображается по умолчанию)
    "entityList": [
      {
        "key": "productName", // компонент, соответствующий уникальному ключу
        "label": "продукт", // ярлык компонента
        "description": "", // описание компонента
        "note": "【必改项】首字母必须小写,中间只允许出现“-”", // подсказка по использованию компонента
        "value": "sales", // содержимое компонента
        "type": "TEXTFIELD", // тип компонента, включая TEXTFIELD (по умолчанию), CHECKBOX, RADIO, COMBOBOX, EDITABLE_COMBOBOX
        "options": null, // список значений для соответствующего элемента, если это раскрывающийся список (COMBOBOX, EDITABLE_COMBOBOX), может быть нулевым
        "highlightable": true, // указывает на то, что элемент является выделенным, обычно компонент отображается как выделенный, например, метка красного цвета, чтобы привлечь внимание пользователя
        "defaultable": false, // указывает, что элемент является элементом по умолчанию, обычно компонент отображается в виде элемента по умолчанию, указывая пользователю, что значение можно не изменять
        "emptiable": false, // указывает, что элемент пуст, обычно компонент отображается пустым, указывая пользователю, что соответствующее значение может быть пустым
        "editable": true // указывает, что элемент не редактируется, обычно компонент отображается серым цветом, указывая пользователю, что соответствующее значение не может быть отредактировано
      }
    ]
  }
]

Получение метаданных драйвера экрана по имени скелета. Другой интерфейс без параметра skeletonName — это способ по умолчанию. Он вызывается, когда скелет не является плагином:

@RequestMapping(value = "/getMetaData/{skeletonName}", method = RequestMethod.GET)
public List<SkeletonGroup> getMetaData(@PathVariable(value = "skeletonName") String skeletonName);

Скачивание Zip-файла скелета по имени. Возвращается массив байтов типа byte[], содержимое файла конфигурации, которое можно скопировать из src/main/resources/config/skeleton-data.properties:

@RequestMapping(value = "/downloadBytes/{skeletonName}", method = RequestMethod.POST)
public byte[] downloadBytes(@PathVariable(value = "skeletonName") String skeletonName, @RequestBody String config);

Скачивание Zip-файла скелета по имени. Возвращается ResponseEntity типа , содержимое файла конфигурации, которое можно скопировать из src/main/resources/config/skeleton-data.properties:

@RequestMapping(value = "/downloadResponse/{skeletonName}", method = RequestMethod.POST)
public ResponseEntity<Resource> downloadResponse(@PathVariable(value = "skeletonName") String skeletonName, @RequestBody String config);

Контакты:

Свяжитесь со мной через WeChat, DingTalk, официальный аккаунт или документы.

График популярности Star:
Stargazers over time

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

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

Введение

Непксион Скелетон — это генератор общих кодов и файлов на основе фреймворка Freemaker для любых текстовых форматов. Он предоставляет шаблон (скелетон) для Spring Cloud с развёртыванием в Docker. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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