Перевод текста на русский язык:
Добро пожаловать в систему автоматического создания кода для административной панели auto-code-admin.
Демонстрационный адрес.
Логин: ztp.
Пароль: 111111 (сервер находится в США, доступ может быть медленным).
Обновления
2019-05-09: версия 2.1.2
- Удален Swagger (слишком инвазивный код, есть некоторые ошибки). Если необходимо использовать, добавьте в свой проект jar-файл swagger и установите для globalConfig.sswagger значение true.
2019-05-08: версия 2.1.1
- Сгенерированные bean-компоненты теперь не игнорируют методы get перед переводом.
- В классах BaseDao и BaseService добавлен метод selectByConditionFirst, который возвращает первую запись.
2019-03-22: версия: 2.1.0. Визуализация представления включена, больше не нужно писать yaml-файлы конфигурации.
2019-03-18: добавлена поддержка API Swagger.
* Добавлен новый элемент управления auto-code-admin/update_sql/2019-03-18.sql.
* В файле globalConfig в yaml добавлена конфигурация swagger: true.
Проект
Функциональность проекта
- Управление пользователями, ролями и правами доступа (контроль прав до уровня кнопок).
- Управление изображениями.
- Оперативный журнал (записывается каждый клик пользователя).
- Управление отчетами.
- Генерация кода (поддержка визуализации для создания однотабличных, один-к-одному, один-ко-многим и многие-ко-многим кодов).
Преимущества проекта
- Большинство существующих инструментов генерации кода поддерживают только создание однотабличного кода. Данный проект поддерживает однотабличный, один-к-одному, один-ко-многим, многие-ко-многим коды, а также соответствующие страницы. Это значительно упрощает разработку.
- Проект просто генерирует однотабличные и многотабличные коды для добавления, удаления, изменения и поиска. Он не вносит никаких изменений в базовый уровень. Если вы знаете, как использовать spring boot + mybatis, вы сможете понять сгенерированный код.
Когда выбрать этот проект?
- Этот проект генерирует код для передней и задней частей вместе. Если вы разрабатываете бэкенд и у вас фиксированная страница презентации, этот проект идеально вам подходит.
- Если вы используете разделение между фронтендом и бэкендом или ваши шаблоны страниц не фиксированы, рекомендуется использовать auto-code. Этот проект генерирует интерфейсы, которые могут быть использованы в широком спектре проектов, включая spring boot и традиционные javaweb проекты. Вам нужно всего лишь интегрировать jar-пакет и выполнить небольшую настройку.
Почему был запущен этот проект?
В большинстве случаев мы занимаемся добавлением, удалением, изменением и поиском. Каждый раз, когда мы создаем новую таблицу, нам приходится заново писать код для добавления, удаления, изменения и поиска, что хотя и просто, но занимает много времени (контроллер, сервер, serverImpl, dao, xml). Поэтому был создан этот проект, чтобы помочь нам сократить 80% работы по разработке бэкенда и сосредоточиться на реализации бизнес-логики.
Архитектура программного обеспечения
- На основе springboot 2.0.7 + mybatis + mysql.
- Основан на коде генерации для расширения страниц auto-code исходный код.
- Шаблонизатор — thymeleaf.
- Фронтенд использует layui.
- Бэкенд-фронтенд-фреймворк — layuiAdmin [https://github.com/coderyangjie/layuiAdmin].
Модули проекта
auto-code-admin (корневой узел):
- auto-code-generator — конфигурация генерации кода;
- auto-code-common — некоторые общие классы и конфигурации;
- auto-code-sys — системные настройки, права доступа, модуль журнала;
- auto-code-charts — модуль отчетов;
- auto-code-web — модуль публикации (этот модуль объединяет остальные модули для публикации. Если модуль отчетов не нужен, просто закомментируйте его в pom.xml).
Установка
- Установите JDK 1.8+, MySQL 5.0+, Maven, Git.
- Загрузите исходный код.
- Импортируйте auto_code.sql из папки auto-code-admin для инициализации базы данных.
- Измените файл application-dev.properties в папке auto-code-web, указав параметры подключения к базе данных и имя пользователя и пароль.
- Откройте командную строку в auto-code-admin и выполните команду mvn clean package.
- Найдите jar-файл в папке target в папках auto-code-admin и auto-code-web и запустите команду java -jar auto-code-web.jar.
- Перейдите по адресу http://localhost:8080.
Генерация кода
После входа в систему нажмите кнопку «Генерация кода». Вы можете создавать код подробнее см. здесь.

Создание кода: обратите внимание
- Многотабличная поддержка позволяет генерировать код без ограничений по уровню вложенности. Например, пользователь и адрес доставки связаны, пользователь и класс связаны...
- При создании структуры таблицы добавление комментариев к таблице и полям значительно улучшает читаемость программы. Я буду добавлять комментарии к bean-компонентам и страницам. Отсутствие комментариев потребует изменения значений на странице. Это увеличит объем работы. Пример:
CREATE TABLE `test_code` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '测试生成代码',
`name` varchar(50) DEFAULT NULL COMMENT '名称',
`age` int(3) DEFAULT NULL COMMENT '年龄',
`status` int(2) DEFAULT NULL COMMENT '{"name":"状态","1":"启用","0":"禁用"}',
`birthday` date DEFAULT NULL COMMENT '生日',
`remarks` text COMMENT '备注',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='测试生成代码'
- Если комментарий представляет собой строку JSON с ключами и значениями, я создам метод словаря в классе сущности. Например: {"name":"Статус","1":"Включить","0":"Отключить"} будет создан в классе сущности следующим образом. Кроме того, отображаемое имя на странице будет "Статус".
public String getStatus_(){
if(MyStringUtils.isEmpty(status)){
return "";
}else if(status.equals("1")){
return "启用";
}else if(status.equals("0")){
return "禁用";
}
return "";
}
Отображение страницы:

Продвинутое использование
Как настроить кластеризацию
Настройка кластера очень проста, и несколько узлов могут завершить ее.
Настройка кластера
- Установите Redis.
- Измените файл pom.xml в папке auto-code-admin, добавив зависимость от redisson-spring-boot-starter.
<dependency>
<groupId>com.zengtengpeng</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>1.0.2</version>
</dependency>
- Измените файл application-dev.properties в папке auto-code-web, добавив конфигурацию Redis.
#单Redis节点模式
redisson.singleServerConfig.address=127.0.0.1:6379
server.port=8070
- Добавьте аннотацию @EnableRedissonHttpSession в класс запуска. Почему не используется spring-boot-starter-data-redis для кластера?
Использование spring-boot-starter-data-redis также возможно, но в данном проекте используется кластер на основе клиента jedis. Как только проект становится кластером, обычно начинается работа над распределёнными блокировками. В версиях jedis ниже 2.10.6 может возникнуть тупик. Позже был добавлен метод для решения этой проблемы, но эта блокировка предназначена только для одного компьютера. Redlock не реализован. Только redssion действительно реализовал redlock. Этот проект представляет собой стартер на базе redssion. Требуется лишь простая аннотация @Lock
для реализации повторно входящей блокировки, справедливой блокировки, блокировки с несколькими замками, красной блокировки и блокировок чтения-записи. Поддерживаются различные режимы кластера. Также поддерживаются MQ и хранение данных.
Подробности см. по адресу: redisson-spring-boot-starter.
Реализация механизма разрешений
В этом проекте используется перехватчик для управления разрешениями. Конкретная реализация — com.zengtengpeng.interceptor.UserInterceptor.
- Как это реализуется? По умолчанию разрешение использует @RequestMapping для сопоставления значений.
- Что делать, если два URL используют одно и то же разрешение? Используйте аннотацию com.zengtengpeng.common.annotation.Auth, значение которой является другим URL разрешения. Таким образом, они будут совместно использовать одно и то же разрешение, и если значение не указано, разрешение предоставляется автоматически после входа в систему.
- Что делать, если доступ к методу не требует авторизации? Отметьте метод аннотацией com.zengtengpeng.common.annotation.Pass. Тогда метод не потребует разрешения.
Описание параметров конфигурации
Пожалуйста, обратитесь к параметрам auto-code. Admin расширяет два уникальных параметра на основе базовых параметров:
Параметр |
Значение по умолчанию |
Описание |
authParentId |
Нет |
Добавить родительский идентификатор в таблицу разрешений. Если пусто, разрешения не генерируются автоматически |
thymeleafPath |
templates |
Каталог файлов страниц thymeleaf |
Как обновить
- После загрузки проекта поместите свой код в модуль auto-code-web или создайте новый модуль самостоятельно.
- Обновите код, заменив auto-code-common, auto-code-generator и auto-code-sys на последнюю версию.
- Если база данных была обновлена, я предоставлю обновлённый SQL-файл в верхней части документа.
Комментарии ( 0 )