Панель управления на основе SpringBoot + Thymeleaf + Layui + Apache Shiro + Redis + Mybatis Plus
Поддерживает права доступа к меню и данным
Поддерживает базы данных MySQL, Oracle, sqlServer и другие основные базы данных
Предоставляет генератор кода, базовые операции добавления, удаления, изменения и выборки не требуют написания кода, что позволяет быстро завершить задачу.
Интерфейсы RESTful стиля, поддерживают разделение фронтенда и бэкенда, могут использоваться вместе с приложением, используя одну и ту же API.
Минимальная настройка для разработки, может использоваться как стартовая площадка, подходит для самостоятельной настройки.
Если вам нравится проект, чтобы не потеряться, пожалуйста, добавьте звездочку проекту. Ваша поддержка добавляет еще больше мотивации! Спасибо~## Основные характеристики
├─main
│ ├─java
│ │ └─com
│ │ └─company
│ │ └─project
│ │ ├─CompanyProjectApplication.java Класс запуска проекта
│ │ ├─common Общие ресурсы, такие как аннотации, аспекты, планирование, глобальное обработки исключений, интеграция Shiro, общие утилиты и т. д.
│ │ ├─controller Контроллерный слой
│ │ ├─entity Энтити классы
│ │ ├─mapper Слой DAO
│ │ ├─service Слой сервисов
│ │ │ └─impl Реализация слоя сервисов
│ └─resources
│ ├── application-dev.yml Файл конфигурации для среды разработки
│ ├── application-test.yml Файл конфигурации для среды тестирования
│ ├── application-prod.yml Файл конфигурации для среды продакшена
│ ├── application.yml Общий файл конфигурации
│ ├── logback-spring.xml Файл конфигурации логирования
│ ├─mapper Файлы XML для MyBatis
│ ├─static Статические файлы
│ │ ├─css Общие файлы CSS
│ │ ├─images Статические изображения
│ │ ├─js Общие файлы JS
│ │ ├─layui Библиотека layui
│ │ └─layui-ext Библиотека плагинов layui
│ ├─template Шаблоны для генерации кода
```│ └─templates Директория страниц проекта
│ ├─depts Управление отделами
│ ├─error Страницы ошибок
│ ├─generator Управление генерацией кода
│ ├─logs Управление логами
│ ├─menus Управление меню
│ ├─roles Управление ролями
│ ├─syscontent Управление контентом
│ ├─sysdict Управление словарями
│ ├─sysfiles Управление файлами
│ ├─sysjob Управление задачами планирования
│ ├─sysjoblog Управление логами задач планирования
│ └─users Управление пользователями
└─test
└─java
└─com
└─company
└─project
├── CompanyFrameApplicationTests.java Юнит-тесты
```## Рекомендации для разработки
- Внутри класса Model рекомендуется использовать переменные экземпляра, соответствующие количеству полей в таблице. Если требуется расширить переменные экземпляра (например, для запросов с соединением таблиц), рекомендуется создать класс VO. В противном случае, расширенные переменные экземпляра должны быть помечены аннотацией @TableField(exist = false).
- Рекомендуется выбрасывать исключение бизнес-логики напрямую с помощью throw new BusinessException("ErrorMessage"), чтобы обработка исключения происходила через единый обработчик исключений. Это приведет к тому, что исключение будет обернуто в объект {"code":500002,"message":"ErrorMessage"} и возвращено.
```- Поддержка токена осуществляется через заголовок или параметр запроса:
- В ajax можно установить заголовок: ```beforeSend: function(request) {request.setRequestHeader("authorization", "действительный токен");}```
- В параметре запроса: ```? authorization=действительный токен```## Инструкции по использованию
- Импортируйте проект в IDE, установив плагин Lombok.
- Установите и запустите Redis.
- Создайте базу данных и импортируйте ***.sql.
- Настройте Redis и подключение к базе данных в application-dev.yml.
- Запустите проект:
1. Запустите CompanyProjectApplication.java напрямую.
2. В корневой директории выполните `mvn -X clean package -Dmaven.test.skip=true` для сборки проекта, затем выполните `java -jar manager.jar`.
- Документация API доступна по адресу http://localhost:8080/doc.html.
- Адрес входа http://localhost:8080/index/login, имя пользователя и пароль: admin/123456.
- Использование генерации кода:
1. Для логического удаления используйте поле deleted: 1 - не удалено, 0 - удалено; для первичного ключа используйте формат `id` varchar(50); избегайте использования ключевых слов базы данных в качестве имен столбцов.
2. В application.yml настройте проект для указания базы данных, в которой находятся таблицы для генерации кода: project.database=mysql.
3. Нажмите на меню [Генерация кода], чтобы сгенерировать код для одного или нескольких таблиц и загрузить его на локальный компьютер.
4. Распакуйте загруженный код и скопируйте папку main в папку src вашего локального проекта.
5. Выполните SQL-запросы для создания меню.
6. Нажмите на меню [Управление ролями], чтобы изменить права доступа для роли, связанной с меню, и обновите страницу для просмотра изменений.- Настройка и использование прав доступа к данным. Пример: управление списком статей.
1. Таблица, требующая настройки прав доступа (например, sys_content), должна содержать поле создателя.
2. Настройте диапазон данных для роли (например, текущий отдел, другие отделы и т.д.) и связанное с ней подразделение.
3. В списке добавьте аннотацию @DataScope (для запроса множества ролей пользователя и получения связанных подразделений на основе прав доступа).
4. При запросе списка или страницы используйте queryWrapper.in(createId, связанные пользователи).
## Техническая документация
* Основной фреймворк: [Spring Boot](https://spring.io/projects/spring-boot)
* Фронтенд-фреймворк: [Layui](https://www.layui.com/)
* Фреймворк для работы с базами данных: [MyBatis-Plus](https://mybatis.plus)
* Пагинация: [Page](https://mybatis.plus/guide/page.html)
* Подключение к базе данных: [Alibaba Druid](https://github.com/alibaba/druid/)
* Фреймворк безопасности: [Apache Shiro](http://shiro.apache.org/)
* Фреймворк кэширования: [Redis](https://redis.io/)
* Документация API: [Knife4j](https://doc.xiaominfo.com/)
* Шаблонизатор: [Thymeleaf](https://www.thymeleaf.org/)
* Руководство по разработке на Java от Alibaba [последняя версия](https://github.com/alibaba/p3c)
## Участие в проекте
1. Fork этого проекта
2. Создайте ветку feature_xxx
3. Подайте код
4. Подайте Pull Request
## Примеры отображения

### Донат
> Развитие проекта невозможно без вашей поддержки. Если у вас есть возможность, поддержите автора, купив ему кофе!

### Общение
> Если у вас есть вопросы или вы хотите обсудить технические аспекты, свяжитесь со мной, чтобы я добавил вас в группу. Обязательно укажите: Open Source

Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )