RuoYi-Cloud-Plus выпускает версию 2.1.2 2023 г., последнюю версию


Журнал изменений

Обновление зависимостей

  • обновить Springboot 3.1.5 => 3.1.7

  • обновить Springboot 2.7.17 => 2.7.18 (расширенная служба обновлена ​​до финальной версии boot2)

  • обновить mybatis-boot 3.0.2 => 3.0.3 Оптимизировать передачу зависимостей

  • обновить powerjob 4.3.3 => 4.3.6

  • обновить easyexcel 3.3.2 => 3.3.3

  • обновить передаваемый-поток-локальный 2.14.2 => 2.14.4

  • обновить justauth 1.16.5 => 1.16.6

  • обновить redisson 3.24.1 => 3.24.3 Исправлена ​​проблема с тайм-аутом перезапуска подписки.

  • обновить easy-es 1.1.1 => 2.0.0-beta4

Обновления функций

  • Обновление оптимизирует удаленные вызовы oss для поддержки обработки перехода на более раннюю версию

  • обновление оптимизирует и обогащает операции RedisUtils с типами наборов списков.

  • обновление оптимизирует модуль администратора, добавляя отдельный модуль ограничителя скорости

  • обновление оптимизирует интерфейс кода проверки и добавляет конфигурацию ограничения тока

  • обновление оптимизирует аннотации слияния Excel для определения последующих слияний столбцов на основе результатов первого объединенного столбца (спасибо Simple)

  • обновить оптимизацию кода SocialUtils

  • обновление оптимизирует и удаляет ненужные классы исключений

  • обновление Оптимизация и завершение интернационализации трехсторонней проверки входа в систему

  • обновление оптимизирует компонент SMS для резервирования классов автоматической настройки

  • update обновляет описание базы данных

  • обновление оптимизирует компонент SMS для резервирования классов автоматической настройки

  • обновление Оптимизируйте и измените конфигурацию OSS на глобальный режим, чтобы уменьшить сложность использования и сохранить SQL для облегчения расширения пользователей (обычные проекты не требуют настройки мультитенантности)

  • Обновление оптимизирует и уточняет контроль разрешений управления конфигурацией ОС

  • обновление оптимизирует и включает кэширование сценариев Redisson для уменьшения передачи данных по сети.

  • Обновление оптимизирует и удаляет конфигурацию hikaricp, которая официально не рекомендуется.Протокол jdbc4 имеет метод проверки.

  • оптимизация обновлений снижает ненужную производительность оптимизации запросов PlusSaTokenDao

  • обновление Оптимизация обновления обновления пользователя предлагает использовать учетную запись для входа

  • Обновление оптимизирует использование вошедших в систему пользователей, чтобы определить, стоит ли входить в систему, чтобы повысить эффективность.

  • обновить Оптимизировать и реконструировать LoginHelper для инкапсуляции операций кода локального хранилища.

  • обновление оптимизирует getTenantId, чтобы определить, следует ли включать мультиарендность

  • обновление оптимизирует Dockerfile и использует режим оболочки для поддержки передачи переменных среды в параметры jvm.

  • обновить Оптимизировать закрытие соединения WebSocketUtils и изменить его на предупреждение

  • обновление оптимизирует экспорт нескольких листов Excel (спасибо Мэй)

  • обновление оптимизирует и удаляет ненужные реализации интерфейса

  • обновление оптимизирует настройку параметров jvm и полностью включает zgc

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

  • обновление оптимизирует TenantHelper для поддержки функциональных методов для динамических клиентов.

  • Обновление оптимизирует поддержку многотенантной привязки с одним и тем же трехсторонним входом в систему.

  • обновление оптимизирует метод обновления данных для входа в систему пользователя, чтобы игнорировать разрешения на данные

  • обновление оптимизирует и дополняет поле времени трехсторонней привязки и удаляет ненужные аннотации Excel

  • Обновление оптимизирует извлечение записей входа в прослушиватель для унифицированной обработки.

  • обновление оптимизирует перехват исключений push-сообщений для входа в систему (оно не будет задерживаться, если ресурс не запущен)

  • Обновление оптимизирует метод ignoreTable подключаемого модуля клиента для поддержки динамических клиентов.

новые возможности

  • добавить новый метод набора RedisUtils.setObjectIfExists, если он существует

  • add добавляет расширенные операции RedisUtils для типа набора списков.

  • добавить Новый компонент перевода, реализация перевода псевдонима пользователя

  • добавить Новая функция шифрования ответа поддерживает аннотации для принудительного шифрования данных интерфейса (спасибо MichelleChung)

  • добавить новый модуль ограничения тока с общим ограничителем скорости для настройки ограничения тока бизнеса и не конфликтовать с дозорным

Исправление ошибок

  • fix Исправлена ​​проблема несогласованности аутентификации, вызванная тем, что служба тестированияstream-mq не импортировала модуль клиента.

  • fix: Исправить ошибку, сообщаемую Seata при использовании zgc (восстановить все компоненты Alibaba по неизвестным причинам).

  • исправлено: в образ Sentinel добавлены избыточные параметры интерфейса.

  • fix Устранить проблему, связанную с тем, что переключатель получения интерфейса регистрации находится за пределами области действия клиента.

  • исправить проблему конфликта версий журнала журнала Seata-сервера

  • fix Исправить проблему с ошибкой метода запроса selectDictTypeByType

  • fix: Исправлена ​​проблема, связанная с тем, что некоторые аномальные классы не могут быть загружены и сообщают об ошибках.

  • fix Исправить проблему с escape-символом сценария powerjob sql для других баз данных (спасибо веткам)

  • fix Исправить проблему с нулевым указателем MybatisSystemException

  • исправление: аннотация слияния Excel будет определять последующее слияние столбцов на основе результата первого объединенного столбца.

  • fix: Исправить проблему совместного использования и покрытия сеансов несколькими учетными записями и изменить ее на независимое хранилище tokenSession.

  • fix Исправлена ​​проблема получения нулевого пользователя при входе в систему после истечения срока действия токена.

  • fix: исправлена ​​проблема, из-за которой более поздняя версия nginx в схеме развертывания powerjob не вступает в силу.

  • fix Исправить проблему одновременного создания нескольких экземпляров OssFactory.

  • исправлено: служба очереди задержки аварийно завершает работу до наступления времени доставки сообщения, из-за чего сообщение не принимается после перезапуска

Изменения во внешнем интерфейсе

  • обновление оптимизирует переменную img аватара пользователя без определения проблемы типа

  • Обновление оптимизирует и уточняет контроль разрешений управления конфигурацией ОС

  • обновление оптимизирует явные команды упаковки

  • Предупреждения в коде оптимизации обновления

  • обновление оптимизирует логику выпуска страницы белого списка на интерфейсе

  • Обновить описание страницы оптимизации об идентификаторах разрешений

  • fix Исправить ошибку записи добавления в тело (спасибо Ai3_Liu Xiaolong)

  • исправить кеш компонента не очищается при закрытии вкладки динамической маршрутизации (спасибо NickLuo)

  • исправить удаление повторяющейся переменной среды ElUploadInstance (спасибо Коттону)

  • fix Исправлена ​​проблема с предупреждением консоли, когда онлайн-пользователи принудительно нажимают кнопку для отмены.

  • fix: Исправлена ​​проблема с предупреждением при использовании стиля по умолчанию в словаре.

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

RuoYi-Cloud-Plus 微服务通用权限管理系统переписывает RuoYi-Cloud для полного обновления (несовместимо с исходной платформой)

Код и документы проекта имеют открытый исходный код, бесплатны и могут использоваться в коммерческих целях. Просто следуйте соглашению об открытом исходном коде и храните файлы соглашения об открытом исходном коде в проекте.
Живите, пока не состаритесь, и пишите, пока не состаритесь. Открытый исходный код для интереса Открытый исходный код для обучения. Открытый исходный код, позволяющий каждому по-настоящему изучить технологию.

Демонстрация системы: https://plus-doc.dromara.org/#/common/demo_system

Адрес внешнего проекта: https://gitee.com/JavaLionLi/plus-ui

Адрес документа: https://plus-doc.dromara.org.

Функциональные различия между этой платформой и RuoYi

Функция эта структура Руои
Фронтенд-проект Переписать
Vue3 + TS + ElementPlus на основе проекта с открытым исходным кодом vue3-element-admin.
На основе Vue2/Vue3 + JS.
Бэкэнд-структура проекта Структурное разделение в виде плагинов + пакетов расширения для легкого расширения. Модули встраиваются друг в друга, и расширение связи серьезно затруднено.
Стиль внутреннего кода Форматирование кода, строго соответствующее спецификациям Alibaba и унифицированной конфигурации проекта. Написание кода отличается от обычных структур, что вызывает трудности с чтением.
Распределенный регистрационный центр Используя интеграцию исходного кода Alibaba Nacos для облегчения отладки расширений и вторичной среды разработки, к нему были добавлены различные средства мониторинга. Использовать Alibaba Nacos для создания чисто официальной версии самостоятельно ненадежно.
Центр распределенной конфигурации Используя интеграцию исходного кода Alibaba Nacos для облегчения отладки расширений и вторичной среды разработки, к нему были добавлены различные средства мониторинга. Использовать Alibaba Nacos для создания чисто официальной версии самостоятельно ненадежно.
сервисный шлюз Платформа SpringCloud Gateway используется для расширения множества функций
, таких как: аутентификация в интрасети, кэширование тела запроса, междоменная конфигурация, журнал ответов на запросы и т. д.
Использование SpringCloud Gateway имеет одну функцию
Балансировка нагрузки Расширение SpringCloud Loadbalancer поддерживает маршрутизацию группы разработчиков, что упрощает разработку и отладку в нескольких командах. Использование SpringCloud Loadbalancer имеет одну функцию
Удаленный вызов RPC Само собой разумеется, что использование нового Apache Dubbo 3.X имеет долгую историю. При использовании метода имитации письма с ограниченными функциями сеть сильно колеблется и нестабильна.
Распределенный токоограничивающий предохранитель Используя интеграцию исходного кода Alibaba Sentinel для облегчения отладки расширений и вторичной среды разработки, он также добавляет различные средства мониторинга. Использовать Alibaba Sentinel для самостоятельной сборки чисто официальной версии ненадежно.
Распределенные транзакции Использование интеграции исходного кода Alibaba Seata для подключения Nacos и различного мониторинга для упрощения процесса создания и развертывания. Использование Alibaba Seata для самостоятельной сборки чисто официальной версии является громоздким, и Nacos не связан со странными методами использования в коде.
Веб-контейнер Использование Undertow, высокопроизводительного контейнера на базе XNIO. Использование Томката
Аутентификация полномочий Использование Sa-Token и Jwt, статическое использование, полноценные функции, низкая связанность и высокая масштабируемость. Spring Security имеет громоздкую конфигурацию и крайне плохую масштабируемость.
Аннотация разрешения Используйте Sa-Token для поддержки проверки входа в систему с помощью аннотаций, проверки роли, проверки разрешений, вторичной проверки подлинности, проверки HttpBasic, проверки игнорирования.
Проверка ролей и разрешений поддерживает несколько условий, таких как AND ORили 权限 OR 角色и другие сложные выражения.
Поддерживает только наличие совпадения
Поддержка реляционных баз данных Встроенная поддержка MySQL, Oracle, PostgreSQL, SQLServer и
гетерогенной коммутации может использоваться одновременно.
Поддерживает MySQL и Oracle. Одновременное использование и гетерогенное переключение не поддерживаются.
база данных кэша Поддерживает Redis 5-7 и поддерживает большинство новых функций, таких как распределенное ограничение тока и распределенные очереди. Поддержка Redis simple get set
клиент Redis Принять Redisson Redis официально рекомендует клиентские инструменты на основе Netty.
Поддерживает более 90% команд Redis. Базовая оптимизация позволяет избежать многих неправильных использований. Например: ключи преобразуются в сканирование.
Поддерживает автономный, дозорный, кластер с одним главным сервером, несколько -мастер-кластер и другие режимы.
Lettuce + RedisTemplate поддерживает несколько режимов, а инструменты громоздки в использовании.
Пул соединений использует общий пул, что часто вызывает проблемы из-за ошибок.
Кэширование аннотаций Аннотация Spring-Cache используется для расширения реализации и поддержки большего количества функций
, таких как время истечения срока действия, максимальная группа времени простоя, максимальная длина и т. д. Для завершения автоматического кэширования данных необходима только одна аннотация.
Логику кода Redis необходимо писать вручную.
ORM-фреймворк Используя Mybatis-Plus, он основан на объектах, практически не требует написания SQL и полностью поддерживает Java.Существует множество мощных плагинов,
таких как многопользовательский плагин, плагин подкачки, плагин оптимистической блокировки, и т. д.
Для использования Mybatis на основе XML требуется рукописный SQL.
SQL-мониторинг Используйте p6spy для вывода полного SQL и выполнения мониторинга времени. Вывод журнала требует ручного объединения SQL и параметров, а проблемы отладки невозможно быстро просмотреть.
Пейджинг данных Для его расширения используется платформа подключаемого модуля подкачки Mybatis-Plus
. Объект подкачки на основе объектов поддерживает несколько способов передачи параметров. Он поддерживает интерфейсную мультисортировку и сложную сортировку.
Использование PageHelper поддерживает только один запрос. Параметры разбивки на страницы можно передавать только из параметра. Доступна только одна функция сортировки. Плохая масштабируемость и плохой опыт.
разрешение на данные Используйте плагин Mybatis-Plus для самостоятельного анализа и объединения SQL. Неиндуктивная фильтрация.
Просто установите условия аннотации для Mapper. Поддерживает множество настроек и не ограничивается ролями отдела.
Использование аннотаций + aop для генерации SQL на основе ролей отдела имеет плохую совместимость и не поддерживает другие бизнес-расширения.
После генерации SQL его необходимо вручную объединить с конкретным бизнес-SQL. Это не работает для нескольких запросов Mapper.
Десенсибилизация данных Использование аннотаций + десенсибилизация Джексона во время сериализации поддерживает различные условия десенсибилизации для разных модулей.Поддерживает
несколько стратегий, таких как удостоверения личности, номера мобильных телефонов, адреса, адреса электронной почты, банковские карты и т. д., и может расширяться самостоятельно.
никто
Шифрование и дешифрование данных Используйте аннотации + перехватчик mybatis для автоматического шифрования и дешифрования данных во время доступа к данным.
Поддерживает несколько стратегий, таких как BASE64, AES, RSA, SM2, SM4 и т. д.
никто
Перевод данных Используйте аннотации + Джексон для динамического изменения данных для перевода во время сериализации.
Поддержка нескольких режимов: 映射翻译 直接翻译 其他扩展条件翻译пользовательское расширение может быть выполнено в два этапа через интерфейс и встроенные реализации нескольких переводов.
никто
Структура нескольких источников данных Используйте динамический источник данных для поддержки большинства баз данных в мире.
Вы можете динамически управлять гетерогенными базами данных разных типов с помощью конфигурации yml. Вы также можете добавлять источники данных через интерфейсную страницу.
Поддержка выражений правописания для переключения источников данных из параметров заголовка запроса и другие условия.
Написание кода для настройки источников данных на основе druid вручную является громоздким и имеет плохую поддержку.
Транзакции с несколькими источниками данных Используйте динамический источник данных для поддержки различных типов отката транзакций базы данных из нескольких источников данных. не поддерживается
Пул соединений с базой данных Используя официальный встроенный пул соединений HikariCP Spring, конфигурация проста и известна своей производительностью и стабильностью. Принять ошибки друида, много поддержки сообщества, низкая активность и низкая конфигурация, множество громоздких конфигураций, средняя производительность.
Первичный ключ базы данных Используя Snowflake ID для упорядоченного увеличения уникальных идентификаторов на основе временных меток, вам больше не придется беспокоиться о слиянии конфликтов первичных ключей и дублировании данных в подбазах данных и подтаблицах. Использует идентификатор автоматического приращения базы данных для поддержки ограниченного объема данных и не поддерживает уникальные первичные ключи из нескольких источников данных.
Протокол веб-сокета Протокол WebSocket, инкапсулированный Spring, расширяет возможности аутентификации по токену и синхронизации распределенных сеансов. Это больше не пустая трата времени на базе одной машины. никто
Сериализация Использование официальной встроенной сериализации Jackson Spring надежно!!! Использование fastjson bugjson широко известно
Распределенная идемпотентность См. упрощенную реализацию антигравитационной системы Meituan GTIS (подробности см. в документе). Написанные вручную аннотации реализованы на основе aop.
Распределенное планирование задач Используя PowerJob, он, естественно, поддерживает распределенный и унифицированный центр управления.Нижний уровень основан на JPA и поддерживает несколько баз данных. При использовании Quartz кластер с низкой производительностью блокировки базы данных требует большого количества настроек и модификаций.
Центр распределенных журналов Используйте проверенное в отрасли решение ELK для сбора текущих журналов всех служб в режиме реального времени, чтобы быстро выявлять и локализовать проблемы. никто
Распределенная поисковая система Используйте ElasticSearch, Easy-Es и Mybatis-Plus для работы с ElasticSearch. никто
Распределенная очередь сообщений Использование SpringCloud-Stream для поддержки Kafka, RocketMQ, RabbitMQ никто
Функция подбазы данных и подтаблицы Использование прокси-сервиса Apache Sharding-Proxy без вмешательства для поддержки сегментирования баз данных и таблиц. Вам нужно только написать правила для сегментирования баз данных и таблиц. никто
Файловое хранилище Используя распределенное файловое хранилище Minio, оно по своей сути поддерживает хранение нескольких компьютеров, нескольких жестких дисков, нескольких сегментов и нескольких копий.
Оно поддерживает управление разрешениями и является безопасным и надежным. Файлы могут быть зашифрованы для хранения.
Использование собственных файлов для хранения голых файлов легко потерять и привести к утечке. Он не поддерживает кластеры и имеет эффект одной точки.
облачное хранилище 采用 AWS S3 协议客户端 支持 七牛、阿里、腾讯 等一切支持S3协议的厂家 不支持
短信 支持 阿里、腾讯 只需在yml配置好厂家密钥即可使用 接口化支持扩展其他厂家 不支持
邮件 采用 mail-api 通用协议支持大部分邮件厂商 不支持
接口文档 采用 SpringDoc、javadoc 无注解零入侵基于java注释
只需把注释写好 无需再写一大堆的文档注解了
采用 Springfox 已停止维护 需要编写大量的注解来支持文档生成
校验框架 采用 Validation 支持注解与工具类校验 注解支持国际化 仅支持注解 且注解不支持国际化
Excel框架 采用 Alibaba EasyExcel 基于插件化
框架对其增加了很多功能 例如 自动合并相同内容 自动排列布局 字典翻译等
基于 POI 手写实现 功能有限 复杂 扩展性差
工具类框架 采用 Hutool、Lombok 上百种工具覆盖90%的使用需求 基于注解自动生成 get set 等简化框架大量代码 手写工具稳定性差易出问题 工具数量有限 代码臃肿需自己手写 get set 等
服务监控框架 采用 SpringBoot-Admin 基于SpringBoot官方 actuator 探针机制
实时监控服务状态 框架还为其扩展了在线日志查看监控
全方位监控报警 采用 Prometheus、Grafana 多样化采集 多模板大屏展示 实时报警监控 提供详细的搭建文档
链路追踪 采用 Apache SkyWalking 还在为请求不知道去哪了 到哪出了问题而烦恼吗
用了它即可实时查看请求经过的每一处每一个节点
代码生成器 只需设计好表结构 一键生成所有crud代码与页面
降低80%的开发量 把精力都投入到业务设计上
框架为其适配MP、SpringDoc规范化代码 同时支持动态多数据源代码生成
代码生成原生结构 只支持单数据源生成
部署方式 支持 Docker 编排 一键搭建所有环境 让开发人员从此不再为搭建环境而烦恼 原生jar部署 其他环境需手动下载安装 自行搭建
项目路径修改 提供详细的修改方案文档 并为其做了一些改动 非常简单即可修改成自己想要的 需要做很多改造 文档说明有限
国际化 基于请求头动态返回不同语种的文本内容 开发难度低 有对应的工具类 支持大部分注解内容国际化 只提供基础功能 其他需自行编写扩展
代码单例测试 提供单例测试 使用方式编写方法与maven多环境单测插件 只提供基础功能 其他需自行编写扩展
Demo案例 提供框架功能的实际使用案例 单独一个模块提供了很多很全

本框架与RuoYi的业务差异

业务 功能说明 本框架 RuoYi
租户管理 系统内租户的管理 如:租户套餐、过期时间、用户数量、企业信息等 支持
租户套餐管理 系统内租户所能使用的套餐管理 如:套餐内所包含的菜单等 支持
用户管理 用户的管理配置 如:新增用户、分配用户所属部门、角色、岗位等 支持 支持
部门管理 配置系统组织机构(公司、部门、小组) 树结构展现支持数据权限 支持 支持
岗位管理 配置系统用户所属担任职务 支持 支持
菜单管理 配置系统菜单、操作权限、按钮权限标识等 支持 支持
角色管理 角色菜单权限分配、设置角色按机构进行数据范围权限划分 支持 支持
字典管理 对系统中经常使用的一些较为固定的数据进行维护 支持 支持
参数管理 对系统动态配置常用参数 支持 支持
通知公告 系统通知公告信息发布维护 支持 支持
操作日志 系统正常操作日志记录和查询 系统异常信息日志记录和查询 支持 支持
登录日志 系统登录日志记录查询包含登录异常 支持 支持
文件管理 系统文件展示、上传、下载、删除等管理 支持
文件配置管理 系统文件上传、下载所需要的配置信息动态添加、修改、删除等管理 支持
在线用户管理 已登录系统的在线用户信息监控与强制踢出操作 支持 支持
定时任务 运行报表、任务管理(添加、修改、删除)、日志管理、执行器管理等 支持 仅支持任务与日志管理
代码生成 多数据源前后端代码的生成(java、html、xml、sql)支持CRUD下载 支持 仅支持单数据源
系统接口 根据业务代码自动生成相关的api接口文档 支持 支持
服务监控 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等 支持 仅支持单机CPU、内存、磁盘监控
缓存监控 对系统的缓存信息查询,命令统计等。 支持 支持
在线构建器 拖动表单元素生成相应的HTML代码。 支持 支持
使用案例 系统的一些功能案例 支持 不支持

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

отwww.oschina.net/news/272161
рекомендация