Панель управления на основе SpringBoot + Thymeleaf + Layui + Apache Shiro + Redis + Mybatis Plus
Поддерживает права доступа к меню и данным
Поддерживает базы данных MySQL, Oracle, SQL Server и другие основные базы данных
Предоставляет генератор кода, базовые операции добавления, удаления, изменения и выборки не требуют написания кода, что позволяет быстро завершить задачу.
Интерфейсы RESTful стиля, поддерживают разделение фронтенда и бэкенда, могут использоваться совместно с приложением.
Минимальная реализация, может использоваться как стартовая площадка, подходит для самостоятельной настройки.
Если вам нравится проект, чтобы не потеряться, пожалуйста, поставьте звездочку проекту. Ваша поддержка добавляет мотивации! Спасибо~## Основные характеристики
├─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 )