Выпущена официальная версия Taro ruoyi-vue-pro v1.0.0! Печень уже полгода, не легко~

Java задняя часть
Выпущена официальная версия Taro ruoyi-vue-pro v1.0.0! Печень уже полгода, не легко~

лысый

Привет всем, яждать Най.

Потребовалось пол года, чтобы получить печеньопыт управленияБыстрое развитие проектов с открытым исходным кодом, хе-хе.

Адрес проекта:

Недавно я начал изучать uniapp и собираюсь сделать апплет WeChat в качестве C-терминала, хе-хе.

Попроси звезду, ты можешь вау?

v1.0.0 Список изменений

Первая версия, основанная на рефакторинге RuoYi-Vue, состоит в основном из трех аспектов:

  • рефакторинг кода
  • Корректировка технического отбора
  • Добавлены фоновые функции

следовательно,v1.0.0Журнал изменений разделен на три аспекта для записи.

рефакторинг кода

  • Настройте общую структуру кода, объедините несколько модулей Maven в один и используйте пакеты Java для раздельной изоляции, напримеркартинапоказано. Причина в том, что с постепенным усложнением бизнес-логики управление зависимостями нескольких модулей Maven станет большой проблемой.
  • расколотьframeworkДля нескольких модулей Maven следуйтеWeb,Security,MyBatis,Redisи другие различные компоненты для инкапсуляции и расширения.
  • на основеJUnit5а такжеMockito, реализовать модульное тестирование, чтобы убедиться в корректности функций и ремонтопригодности кода. Всегда автоматизировано, всегда круто!
  • Добавьте файлы конфигурации SpringBoot для нескольких сред, чтобы обеспечить полнуюdeploy.shсценарии развертывания иУчебник по развертыванию Jenkins.
  • оптимизацияSpring SecurityКод, реализующий разрешения для повышения удобочитаемости и удобства сопровождения.
  • Увеличьте локальный кеш (меню, роли, словарь данных и т. д.) для повышения производительности. Обновление кеша в режиме реального времени достигается за счет подписки и публикации Redis.
  • УвеличиватьVOКласс как объект ответа интерфейса API позволяет избежать прямой связи между сущностью базы данных и внешним интерфейсом.
  • оптимизацияЖурнал операций, который поддерживает чтение Swagger как содержимого журнала.
  • оптимизациязадача на время, поддержка повторной попытки выполнения при сбое и более совершенный журнал выполнения.
  • оптимизацияcodegenГенератор кода генерирует дополнительный код для VO и модульного тестирования на основе исходного кода для Controller, Service, Mapper, объектов базы данных и Vue.
  • Настройте файл для использования вместо этогобаза данныххранилище, а не файловая система. Причина в том, что когда проект развертывает несколько сервисных узлов, файлы необходимо синхронизировать. В будущем будут добавлены облачные сервисы хранения, такие как Alibaba Cloud и Qiniu Cloud.
  • Удалите запрос связанной таблицы и рекурсивный запрос исходной базы данных и измените метод работы с одной таблицей, несколько операций чтения + объединение памяти.
  • Оптимизируйте формат кода Java и решите проблему предупреждения кода IDEA.

Добавлены фоновые функции

  • Добавить APIдоступа такжеаномальныйlog, который удобен для устранения проблем с онлайн-API.
  • Увеличиватьглобальный код ошибки, унифицированное управление бизнес-исключениями. Фон управления будет поддерживать управление кодами ошибок и настраиваемую подсказку.
  • УвеличиватьСМС-модуль, обеспечивает управление каналами SMS, шаблонами SMS и журналами SMS и подключается к основным платформам SMS, таким как Alibaba Cloud и Yunpian.
  • Добавить RedisKeyуправление, знать формат, тип данных, срок действия, описание и т. д. ключа Redis, используемого в проекте.

Корректировка технического отбора

  • Обновите версию Spring Boot с 2.1.3 до последней версии 2.4.5.
  • Увеличиватьbomфайл для унификации управления зависимостями Maven.
  • представлятьMyBatis PlusКомпоненты упрощают использование MyBatis и повышают эффективность разработки.
  • представлятьRedissonКомпоненты, действующие как клиенты Redis, обеспечивают более мощные операции Redis.
  • Функция распределенной очереди сообщений реализована на базе Redis. Доступ к RedisPub/SubРеализуйте широковещательное потребление и получите доступ к RedisStreamРеализовать потребление кластера.
  • Удалитьfastjson, используется равномерноJacksonКак библиотека JSON, печаль старых дыр в безопасности.
  • представлятьMapStructКомпонент, реализующий преобразование между сущностями базы данных и классами VO.
  • представлятьLombokКомпоненты, генерировать общие методы, такие как сеттеры и геттеры, и удалять избыточный код.
  • Вводить веснуAsyncфункция для реализации асинхронных задач. Например, асинхронно вести журналы доступа к API, журналы действий администратора и т. д.
  • волшебное изменениеApolloкомпонентов, получить доступ к локальной базе данных и реализовать встроенный центр конфигурации. С точки зрения непрофессионала, мы можем добавить оригинал кapplication.yamlВместо этого элемент конфигурации добавляется в базу данных, и он будет прочитан при запуске проекта.
  • представлятьHutoolКомпоненты, удалить множество повторяющихся классов инструментов и избежать некоторых ошибок в оригинальном Util.
  • представлятьScrewКомпонент, реализующий генерацию документов базы данных, хотя, похоже, сейчас используется меньше.
  • представлятьEasyExcel, который предоставляет функции импорта и экспорта Excel.
  • выполнитьIdempotentКомпонент, который реализует идемпотентные функции и может использоваться для решения проблемы повторных HTTP-запросов.
  • представлятьLock4J, чтобы реализовать функцию декларативной распределенной блокировки. Хотя Redisson имеет встроенную функцию распределенной блокировки, она объявляет@Lock4jИспользование аннотаций удобнее и подходит для большинства сценариев.
  • Удалите исходный мониторинг службы, используйтеSpringBoot AdminВместо этого предоставьте более полные возможности мониторинга.
  • представлятьSkyWalkingКомпонент, реализующий функции отслеживания ссылок и лог-сервисов. Благодаря отслеживанию ссылок мы можем видеть MySQL, Redis и другие операции, связанные с запросом API; через службу журналов мы можем легко просматривать журналы каждого экземпляра службы.
  • представлятьResilience4jКомпоненты для ограничения тока, плавких предохранителей и других функций для обеспечения стабильности службы.
  • представлятьKnife4j, украсить документацию интерфейса. Изначально отсутствуют все документы по интерфейсу API, и они доработаны, видно, чтоapi-dashboard.yudao.iocoder.cn/doc.htmlадрес.

Введение в платформу

Таро Роуд,задаватьВсе с открытым исходным кодомизПредприятиеПлатформа быстрой разработки бесплатна для частных лиц и предприятий без каких-либо оговорок.

Любые вопросы или желаемые функции можно найти по адресуIssuesупоминается в середине.

  • Принятие внешнего интерфейсаvue-element-admin.
  • Серверная часть использует Spring Boot, MySQL и Redis.
  • Аутентификация авторизации использует Spring Security & Token, который поддерживает многотерминальную систему аутентификации.
  • Поддержка загрузки динамического меню разрешений, простое управление разрешениями несколькими способами.
  • Эффективная разработка: используйте генератор кода для генерации внешнего и внутреннего кода одним щелчком мыши.

Встроенная функция

Разделяется на три встроенные функции:

  • Системные функции
  • инфраструктура
  • Инструменты НИОКР

Дружеское напоминание: этот проект модифицирован на основе RuoYi-Vue,Рефакторинг и оптимизациявнутренний код,украшатьпередний интерфейс.

Для дополнительных добавленных функций мы помечаем их 🚀.

🙂 Все функции черезмодульный тестГарантия высокого качества.

Системные функции

Функции описывать
Управление пользователями Пользователь является системным оператором, эта функция в основном завершает настройку пользователя системы.
онлайн-пользователь Активный мониторинг состояния пользователя в текущей системе, поддержка ручного запуска
управление ролями Назначение разрешений меню ролей, настройка ролей Разделение разрешений области данных по учреждениям
управление меню Настройте системное меню, полномочия управления, идентификацию полномочий кнопок и т. д.
Управление отделом Настройте организацию системы (компания, отдел, команда), древовидную структуру для отображения разрешений на данные поддержки.
Управление сообщениями Настройка должности системного пользователя
Управление словарем Поддерживать некоторые относительно фиксированные данные, которые часто используются в системе
🚀 SMS-управление Канал SMS, шаблон SMS, журнал SMS, подключение к основным платформам SMS, таким как Alibaba Cloud и Yunpian.
🚀 Журнал операций Ведение журнала и запрос нормальной работы системы, интеграция Swagger для создания содержимого журнала
журнал входа Запрос записи журнала входа в систему, включая исключения входа
🚀 Управление кодами ошибок Управление всеми кодами ошибок в системе, подсказки об ошибках могут быть изменены онлайн без перезапуска службы
объявление Выпуск информации об объявлении системного уведомления и техническое обслуживание

инфраструктура

Функции описывать
🚀 Управление конфигурацией Динамическая настройка общих параметров системы, поддержка загрузки SpringBoot
задача на время Планирование задач онлайн (добавление, изменение, удаление) включает журнал результатов выполнения
🚀 файловая служба Поддерживает локальное хранилище файлов, а также облачные сервисы и компоненты с открытым исходным кодом, совместимые с протоколом Amazon S3.
🚀 Журналы API Включая журнал доступа RESTful API и журнал исключений, что удобно для устранения неполадок, связанных с API.
мониторинг MySQL Отслеживайте текущее состояние пула соединений с системной базой данных и анализируйте SQL, чтобы найти узкие места в производительности системы.
Мониторинг Redis Отслеживайте использование базы данных Redis и управляйте используемым ключом Redis.
🚀 Java-мониторинг Мониторинг Java-приложений на основе Spring Boot Admin
🚀 отслеживание ссылок Доступ к компонентам SkyWalking для отслеживания ссылок
🚀 бревенчатый центр Получите доступ к компоненту SkyWalking, чтобы реализовать центр бревен.
🚀 Распределенная блокировка Внедрение распределенных блокировок на основе Redis для соответствия параллельным сценариям.
🚀 Идемпотентные компоненты Внедрить идемпотентные компоненты на основе Redis для решения проблемы повторных запросов
🚀 Гарантия обслуживания На основе Resilience4j для обеспечения стабильности обслуживания, включая ограничение тока, плавкие предохранители и другие функции.
🚀 служба журнала Легкий центр журналов, просмотр журналов удаленных серверов
🚀 модульный тест Внедрить модульное тестирование на основе JUnit + Mockito для обеспечения функциональной корректности, качества кода и т. д.

Инструменты НИОКР

Функции описывать
🚀 генерация кода Генерация внешнего и внутреннего кода (Java, Vue, SQL, модульное тестирование), поддержка загрузки CRUD
🚀 системный интерфейс Автоматически создавать соответствующую документацию по интерфейсу RESTful API на основе Swagger.
🚀 документация по базе данных Автоматически генерировать документы базы данных на основе Screw, поддерживать экспорт в форматы Word, HTML, MD
форма здания Перетащите элементы формы для создания соответствующего HTML-кода.

онлайн опыт

Демонстрационный адрес:dashboard.yudao.iocoder.cn

  • Пароль учетной записи: admin/admin123

Адрес документа:Woohoo. Кодировщик ввода/вывода. способности /categories/…

Документы и видео будут добавлены в будущем, чтобы помочь толстым друзьям спешить!

стек технологий

проект иллюстрировать
yudao-dependencies Управление версиями зависимостей Maven
yudao-framework Расширение фреймворка Java
yudao-admin-server Управление внутренним сервером
yudao-admin-ui Пользовательский интерфейс администратора
yudao-user-server Пользовательский интерфейсный сервер
yudao-user-ui UI интерфейс переднего плана пользователя

задняя часть

Рамка иллюстрировать Версия учебное пособие
Spring Boot Среда разработки приложений 2.4.5 Документация
MySQL сервер базы данных 5.7
Druid Пул соединений JDBC, компоненты мониторинга 1.2.4 Документация
MyBatis Plus Комплект расширения MyBatis 3.4.1 Документация
Dynamic Datasource динамический источник данных 3.3.2 Документация
Redis база данных "ключ-значение" 5.0
Redisson Клиент Redis 3.1.46 Документация
Spring MVC Фреймворк MVC 5.4.6 Документация
Spring Security Спринг-фреймворк безопасности 5.4.6 Документация
Hibernate Validator Компонент проверки параметров 6.1.7 Документация
Quartz компонент планирования задач 2.3.2 Документация
Knife4j Реализация расширенного пользовательского интерфейса Swagger 3.0.2 Документация
Resilience4j Компоненты гарантии обслуживания 1.7.0 Документация
SkyWalking Распределенная система отслеживания приложений 8.5.0 Документация
Spring Boot Admin Платформа мониторинга Spring Boot 2.3.1 Документация
Jackson Библиотека инструментов JSON 2.11.4
MapStruct Преобразование Java-бина 1.4.1 Документация
Lombok Избавьтесь от многословного кода Java 1.16.14 Документация
JUnit Среда модульного тестирования Java 5.7.1 -
Mockito Java-мок-фреймворк 3.6.28 -

внешний интерфейс

Рамка иллюстрировать Версия
Vue Фреймворк JavaScript 2.6.12
Vue Element Admin Бэкенд-фронтенд решения -

демонстрационная карта

Системные функции

модуль biu biu biu
Войти и Главная 登录 首页 个人中心
Пользователь 用户管理 在线用户 -
Отделы и должности 部门管理 岗位管理 -
Меню и роли 菜单管理 角色管理 -
Журнал аудита 操作日志 登陆日志 -
Короткое сообщение 短信渠道 短信模板 短信日志
Словарь 字典类型 字典数据 -
Коды ошибок и уведомления 错误码管理 通知公告 -

инфраструктура

модуль biu biu biu
Документация и конфигурация 文件管理 配置管理 -
задача на время 定时任务 任务日志 -
Журналы API 访问日志 错误日志 -
MySQL & Redis MySQL Redis -
платформа мониторинга Java监控 链路追踪 日志中心

Инструменты НИОКР

модуль biu biu biu
генерация кода 代码生成 生成效果 表单构建
Документация 系统接口 数据库文档 -