/src/main/resources/mysql.sql
.Конфигурационный файл базы данных расположен в модуле webapp и находится по адресу: /src/main/resources/config/config.properties
. Если используется база данных MySQL, необходимо изменить файл /src/main/resources/config/config.properties
, где нужно изменить следующее содержимое:
<properties>
<!-- Устанавливаем тип базы данных, поддерживаемые типы: mysql, sqlServer, oracle -->
<property name="polar_dataBaseType" value="mysql" />
</properties>
В платформе используется унифицированный JSON для возврата данных. В контроллере используются методы для выброса исключений и перенаправления на разные страницы ошибок. Исключение содержит «код значения», который можно использовать для указания на определённую страницу. Путь к конфигурационному файлу: /src/main/resources/config/mapping.properties
, ключ называется MP_код_значения, а его конфигурация по умолчанию выглядит следующим образом:
Key | Value | Объяснение |
---|---|---|
DEFAULT | /view/sys/error.jsp | Страница ошибки по умолчанию |
MP_000001 | /view/sys/error.jsp | Нет |
MP_000008 | /view/sys/login.jsp | Нет |
MP_000009 | /view/sys/error.jsp | Нет |
MP_000010 | /view/sys/login.jsp | Нет |
Принцип тот же, что и выше, путь к файлу конфигурации: /src/main/resources/config/msg.properties
, а ключ называется MSG_код_значения.
Платформа имеет два встроенных метода кэширования: Redis и Ehcache. Кэширование в основном используется для следующих целей:
При переключении на другой метод кэширования, например, на Redis, необходимо внести изменения в файл spring-context.xml
и импортировать файл spring-jedis.xml
. Способ переключения кэша следующий:
Файл конфигурации находится по адресу /src/main/resources/xmls/spring-context.xml
, убедитесь, что следующий код работает:
<cache:annotation-driven cache-manager="ehCacheManager"/>
<bean id="ehCacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager" ref="ehCacheManagerFactory"></property>
</bean>
Файл конфигурации расположен по адресу /src/main/resources/xmls/spring-context.xml
, убедитесь, что следующий код работает:
<cache:annotation-driven cache-manager="redisSpringCacheManager"/>
Измените файл spring-shiro.xml
, чтобы убедиться, что следующий код работает:
<bean id="shiroCacheManager" class="polar.island.core.cache.JedisShiroCacheManager"/>
Измените файл spring-shiro.xml
, чтобы убедиться, что следующий код работает:
<bean id="shiroCacheManager" class="polar.island.security.cache.ShiroCacheManager">
<property name="cacheManagerConfigFile" value="classpath:cache/shiroCache.xml" />
</bean>
В качестве механизма рабочего процесса в платформе используется Activiti версии 6.0. Модуль называется activiti, и проект представляет собой модульный проект, позволяющий загружать и выгружать рабочий процесс в любое время. Для этого достаточно изменить файл pom.xml модуля webapp и добавить или удалить зависимость от activiti. После удаления рекомендуется скрыть меню, связанное с рабочим процессом.
В платформе используется Swagger2 для создания документации по интерфейсу. После официального выпуска проекта рекомендуется отключить онлайн-документацию, выполнив следующие действия:
spring-MVC.xml
, закомментируйте следующие две строки:<context:component-scan base-package="springfox"/>
<bean class="polar.island.web.api.DocConfig" />
polar.island.web.api.DocConfig.java
, закомментировав аннотацию класса.Название | Значение |
---|---|
parent | Платформа, родительский конфигурационный файл |
core | Базовый модуль платформы |
inlay | Модуль с внутренними функциями платформы: управление пользователями, организациями и словарями |
flow | Модуль для работы с потоками |
components | Компонентный модуль |
web | Проектный вход, включает некоторые страницы, JS и CSS |
Название | Значение |
---|---|
common | Базовые классы и другие общие элементы |
front | Поддержка веб-интерфейса |
Название | Значение |
---|---|
file-mongo | Хранение файлов с использованием MongoDB |
mongodb-service | Поддержка MongoDB |
mybatis-service | Поддержка MyBatis |
mybatis | Основной модуль MyBatis |
payment | Платёжный модуль |
rocketmq | Модуль очереди сообщений |
shiro | Модуль авторизации Shiro |
Название | Значение |
---|---|
flow-joggle | Интерфейс и сущности для рабочих процессов |
flow-service | Реализация сервиса рабочего процесса, включая хранение данных в базе данных. Рабочий процесс поддерживает только SQL базы данных, не поддерживает MongoDB |
flow-web | Переходы страниц и связанные с интерфейсом классы |
Название | Значение |
---|---|
inlay-joggle | Интерфейсы и сущности внутренних модулей |
inlay-service | Сервисные реализации внутренних модулей, включая скрипты для публикации сервисов |
inlay-service-mongodb | Сервисная реализация внутренних модулей с использованием MongoDB для слоя DAO |
inlay-web | Страницы внутренних модулей и связанные с ними классы интерфейса |
parent-->core-->inlay,flow-->web
После завершения установки проекта можно запустить проект через Tomcat в среде IDEA или развернуть WAR-файл из каталога webapp/target
в каталог Tomcat.
После установки проекта в каталоге XX-service/target
будет создан файл XX.tar.gz
, который является пакетом развёртывания для Linux-систем. Этот файл необходимо загрузить на сервер Linux и распаковать. Затем выполнить команду:
sh service.sh start
, чтобы запустить сервис.
Сервис также поддерживает следующие команды:
sh service.sh stop — остановить сервис
sh service.sh status — проверить статус сервиса
sh service.sh restart — перезапустить сервис
Также поддерживается развёртывание сервиса в Windows:
XX-service/target/deploy
на сервер Windows.java -jar xx-service.jar
.После установки проекта его можно запустить через Tomcat в среде IDEA или развернуть WAR-файл из каталога webapp/target
в каталог Tomcat.
В различных проектах словари широко используются для выпадающих списков. В этой структуре словари разделены по группам, и они используют кэширование. В JSP предоставляются теги, которые позволяют использовать следующие формы для получения данных словаря:
${fns:getDict(groupId)}
— возвращает коллекцию;${fns:getDictJson(groupId)}
— возвращает данные JSON.Таблица t_polar_dict
:
Поле | Имя | Описание |
---|---|---|
id | Номер | Идентификатор данных |
text | Текст | Текст, отображаемый в выпадающем списке |
value | Значение | Истинные данные словаря |
remark | Примечание | Примечание к словарной статье |
orderNum | Порядковый номер | Порядковый номер в группе |
groupId | Групповой идентификатор | Идентификатор группы словаря |
groupName | Название группы | Название группы словаря |
Управление древовидными структурами похоже на управление словарями. Оно также основано на групповых идентификаторах. Предоставляются два способа вычисления отношений между родителями и детьми: кодирование и номера родителей и детей. На странице JSP можно использовать следующие способы для получения данных древовидной структуры:
${fns:getTree(groupId)}
— возвращает коллекцию;${fns:getTreeJson(groupId)}
— возвращает данные JSON.Кодирование: Данные древовидной структуры, использующие кодирование, вычисляют отношения между родителями и детьми на основе кода в древовидной структуре. Код в древовидной структуре состоит из шести цифр, где каждые две цифры представляют уровень. «00» обозначает корневой узел. Пример простой области кодирования:
Код | Область | Родительская область | Уровень |
---|---|---|---|
000000 | Китай | Нет | 0 |
010000 | Шаньдун | Китай | 1 |
020000 | Шаньси | Китай | 1 |
020100 | Тайюань | Шаньси | 2 |
010100 | Цзинань | Шаньдун | 2 |
010101 | Новый район | Цзинань | 3 |
010102 | Центральный район | Цзинань | 3 |
010103 | Нижний район | Цзинань | 3 |
Номера родителей и детей: Этот метод может использоваться для сложных древовидных структур. Он использует номера родителей и детей для определения отношений уровней. Значения сортируются по возрастанию.
Таблица t_polar_tree
:
Поле | Имя | Описание |
---|---|---|
id | Номер | Идентификатор |
text | Текст | Отображаемый текст в древовидной структуре |
value | Значение | Данные древовидной структуры |
textAlias | Псевдоним | Псевдоним древовидной структуры |
parentId | Номер родителя | Номер родительского узла |
groupId | Групповой идентификатор | Идентификатор группы древовидной структуры |
groupName | Название группы | Название группы древовидной структуры |
textId | Номер | Используется для вычисления отношений между родителями и детьми |
type | Тип | 1 — кодирование, 2 — номера родителей и детей |
Ресурсы в платформе используются для динамического подключения к базе данных. Через них можно контролировать доступ к определённым интерфейсам, устанавливая права доступа к путям. Пользователи без соответствующих прав не смогут получить доступ к этим путям.
Права доступа и пути связаны через кэш. Если вносятся изменения, необходимо нажать кнопку «Перезагрузить ресурсы». В случае балансировки нагрузки рекомендуется использовать Redis для организации очередей и распределения задач между машинами.
7. Шаблоны меню
Для разных пользователей могут быть предусмотрены разные меню. Шаблоны меню позволяют настраивать различные меню для пользователей. Если пользователь не имеет назначенного меню, он будет использовать стандартное меню по умолчанию.
В шаблонах меню можно связать конкретное меню с пользователем, выбрав опцию «Назначить меню» в меню шаблона.
8. Управление меню
Меню на платформе представляют собой иерархическую структуру. Здесь можно управлять различными аспектами меню, включая значки, названия, пути доступа и их видимость. Значки меню создаются с использованием библиотеки иконок Font-Awesome.
9. Управление пользователями
Система предоставляет инструменты для управления пользователями. Можно добавлять новых пользователей, назначать им роли, исключать активных пользователей из системы, настраивать меню и включать или отключать учётные записи.
10. Управление организациями
Пользователи могут принадлежать к определённым организациям. Организации имеют свои уникальные права доступа. Когда пользователь присоединяется к организации, он также получает все права этой организации.
Организации организованы в виде иерархии. Подразделения не наследуют права от родительских организаций.
11. Журнал доступа
Журнал доступа позволяет отслеживать каждый раз, когда пользователь обращается к платформе. Обработка журнала выполняется с помощью потоков, что не влияет на производительность системы.
По умолчанию интерфейсы не регистрируют обращения. Чтобы включить регистрацию, необходимо добавить аннотацию @ErrorMsg
к интерфейсу. Параметр tag
указывает на название интерфейса, type
определяет тип возвращаемых данных при возникновении ошибки, а writeLogs
указывает, следует ли записывать журнал (по умолчанию — да).
12. Группы операций
Группы операций предназначены для управления процессами. Они группируют пользователей и предоставляют им доступ к операциям в соответствии с их принадлежностью к группе.
13. Управление формами
Управление формами связано с процессами и включает настройку и редактирование форм для каждого действия. В процессе необходимо связать операции с соответствующими формами.
14. Управление процессами
Для управления процессами используется движок рабочего процесса Activiti. Он работает на основе стандарта BPMN 2.0 и не поддерживает стандарт BPMN 1.0. Поддерживается онлайн-редактирование процессов. После завершения редактирования процесс должен быть опубликован для запуска.
В графическом представлении процесса каждый шаг требует участия пользователя и ввода данных. Необходимо связать шаги с формами.
Символы ${start.xx}
и ${current.xx}
используются для обозначения параметров в начале процесса и данных, введённых во время текущего шага соответственно.
Если процесс только начинается, данные обозначаются как ${xx}
.
15. Генератор кода
Генератор кода поддерживает три типа форм: одиночные таблицы, родительско-дочерние таблицы и древовидные структуры.
Одиночные таблицы: содержат данные одной таблицы. Используются для простых бизнес-логик. Пример — модуль словаря, где каждая запись связана с другой таблицей.
Родительско-дочерние таблицы: состоят из двух частей — родительской и дочерней таблиц. Например, личная информация в резюме является родительской, а опыт работы и проекты — дочерними таблицами. На платформе одна родительская таблица может иметь несколько дочерних таблиц.
Древовидные структуры: требуют двух параметров — уникального идентификатора и идентификатора родительского элемента. При поиске в древовидной структуре не используется разбиение на страницы.
При использовании генератора кода необходимо выполнить следующие шаги:
Проектирование базы данных: имена таблиц не должны начинаться с «t_polar» или «act_», так как это зарезервированные имена. В таблицах следует добавлять комментарии к полям.
Импорт таблиц: платформа не позволяет создавать новые таблицы, поэтому необходимо импортировать их из базы данных.
Изменение параметров таблицы: после импорта таблиц можно настроить параметры.
Изменение параметров столбцов: после настройки параметров таблицы можно изменить параметры столбцов, такие как добавление, удаление и изменение порядка. Некоторые типы столбцов имеют дополнительные параметры, которые нельзя оставить пустыми.
Генерация кода: после завершения настройки можно сгенерировать код. Путь к сгенерированному коду указан в файле /src/main/resources/config/config.properties
в свойстве CODE_PATH. Для родительско-дочерних таблиц сначала необходимо создать код для родительской таблицы.
Создание разрешений: после генерации кода система автоматически создаёт разрешения для администратора.
Настройка меню: после создания кода необходимо настроить меню в соответствии с шаблонами меню и управлением меню.
Перезапуск сервиса: после выполнения всех шагов сервис можно перезапустить, чтобы увидеть новые функции. Перевод текста на русский язык:
Таблица:
@Dao注解内的value值 | Имя класса сущности |
---|---|
Значение | Имя класса сущности |
Таблица:
Имя класса сущности | Имя класса сущности |
---|---|
Имя класса сущности | Имя класса сущности |
Таблица:
Конфигурация Mapper |
---|
Название папки |
Название файла |
Таблица:
Проверка способа | Проверка способа |
---|---|
Layui, bootstrapTable | Layui, bootstrapTable |
Шаблон списка | Шаблон списка |
Наименование страницы списка | Наименование страницы списка |
Наименование редактирующей страницы | Наименование редактирующей страницы |
15.1.2. Таблица обзора параметров столбцов
Поле | Значение |
---|---|
Имя поля | Имя поля в базе данных |
Имя столбца Java | Имя столбца в классе сущности |
Китайское имя | Китайское название поля |
Комментарий | Комментарий к полю |
Тип поля | Тип поля |
Способ сопоставления | Способ сопоставления поля при запросе списка |
Расширенные параметры | См. таблицу расширенных параметров |
Отображение | Отображается ли поле на странице запроса и списка, отображается ли в списке запросов, возвращается ли при запросе списка, разрешено ли редактирование в строке |
Проверка | Способ проверки данных поля при добавлении или редактировании |
15.1.3. Таблица расширенных параметров
Таблица:
Имя поля | Обязательное | Примечание |
---|---|---|
Однострочный текст, целое число, число с плавающей точкой, большое целое число | — | — |
maxlength | Нет | Максимальная длина текстового поля по умолчанию составляет 50. Если указано -1, максимальная длина не ограничена |
minLength | Нет | Минимальное значение не требуется, можно не указывать |
Выпадающий список | — | — |
emptyValue | Нет | Текст по умолчанию, отображаемый в словаре, если не выбран |
name | Да | Номер группы словаря |
Дата | — | Формат даты по умолчанию: гггг-ММ-дд |
Формат | Нет | Формат даты, по умолчанию: yyyy-MM-dd |
Одиночное изображение | — | — |
height | Нет | Высота изображения по умолчанию равна 80px |
width | Нет | Ширина изображения по умолчанию равна 80px |
Несколько файлов | — | — |
type | Нет | Поддерживаемые типы файлов для загрузки: images (изображения), file (все файлы), video (видео), audio (аудио), по умолчанию file |
max | Нет | Максимальное количество файлов, которые можно загрузить. По умолчанию -1 означает отсутствие ограничений |
Редактор форматированного текста | — | — |
maxlength | Нет | Максимально допустимое количество символов для ввода в редакторе форматированного текста, включая знаки препинания, по умолчанию 2000 |
Текстовая область | — | — |
maxlength | Нет | Максимально допустимая длина ввода в текстовой области, включая знаки препинания, по умолчанию 500 |
Много изображений | — | — |
height | Нет | Высота изображения по умолчанию равна 80px |
width | Нет | Ширина изображения по умолчанию равна 80px |
max | Нет | Максимальное количество форматов изображений, которые можно загрузить, по умолчанию -1 означает отсутствие ограничений |
Один файл | — | — |
type | Нет | Типы файлов для загрузки, поддерживаемые: images (изображения), file (все файлы), video (видео), аудио (аудио), по умолчанию file |
Одноуровневый выбор дерева | — | — |
name | Да | Идентификатор группы дерева |
Множественный выбор дерева | — | — |
name | Да | Идентификатор группы дерева |
Выбор провинции, города, района, скрытие | — | — |
— | — |
15.1.4. Другие инструкции
После модульности программы можно легко загружать различные функции. Например, если вам не нужен рабочий процесс, просто удалите соответствующие зависимости из pom.xml.
Проект разделён таким образом для того, чтобы обеспечить развязку между различными проектами. Например, если вы хотите использовать MongoDB, вы можете ввести службу MongoDB, а для обычной службы — обычную службу. Кроме того, в распределённой версии необходимо разделить проект таким образом, чтобы веб-программа вводила интерфейс и веб-интерфейс, не заботясь о фактической реализации класса, и осуществляла удалённый вызов через Dubbo.
Очередь сообщений используется для кластерного планирования, распределённых транзакций и асинхронных уведомлений. Она делится на широковещательный и режим очереди.
Распределённые транзакции: они используют принцип компенсации транзакций. Когда система выходит из строя, сообщение отправляется в очередь сообщений, и фиксированная машина обрабатывает это сообщение. Если количество обработок слишком велико, оно будет сохранено постоянно, и пользователь обработает его вручную.
Версия MongoDB не должна превышать 4.0, и требуется сделать репликацию, иначе невозможно управлять транзакциями. Поддержка базы данных SQL: Oracle, MySQL, SQL Server, тип базы данных можно изменить с помощью файла конфигурации. Вопрос 1: Почему после появления Redis всё ещё используется Ehcache?
Ehcache предназначен для использования на одном компьютере. В среде одного компьютера Ehcache использует только скорость чтения с диска, в то время как Redis будет использовать пропускную способность системы и влиять на производительность.
Вопрос 2: Как выполнить сборку для производственной среды и тестовой среды?
Добавьте profile в файл pom.xml, выберите profile и используйте команду maven для сборки.
Вопрос 3: Красив ли автор?
Что насчёт Ву Ияньцзу?
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )