RuoYi-Cloud-Plus publie la version 1.8.2 et entre officiellement dans le statut de maintenance


Journal des modifications

Description de l'état de la version

Depuis que springboot 2.X et vue 2.X ont officiellement annoncé qu'ils arrêteraient la maintenance, la version 1.X du framework est entrée en statut de maintenance (traitant uniquement des problèmes et non des fonctions de mise à jour)

Durée estimée d'arrêt pour maintenance : juin-octobre 2024. Elle sera déterminée dynamiquement en fonction du nombre d'utilisateurs. Cette version est déjà assez stable et n'affectera pas l'utilisation même si les fonctions ne sont pas mises à jour.

Si vous choisissez toujours d'utiliser jdk8 ou jdk11, vous pouvez utiliser cette version en toute confiance. Si vous souhaitez utiliser jdk17 ou jdk21, vous pouvez choisir d'utiliser la branche 2.X.

Mise à niveau des dépendances

  • mise à jour springboot 2.7.16 => mise à niveau 2.7.18 vers la version finale 2.X (officiellement abandonnée)

  • mettre à jour mybatis-plus 3.5.3.2 => 3.5.4

  • mise à jour vers 1.36.0 => 1.37.0

  • mettre à jour hutool 5.8.20 => 5.8.22

  • mise à jour aws-java-sdk-s3 1.12.400 => 1.12.540

  • mettre à jour vue-quill 1.1.0 => 1.2.0

Mises à jour des fonctionnalités

  • Mettre à jour la description de la page d'optimisation concernant les identifiants d'autorisation

  • la mise à jour optimise l'intercepteur d'autorisation de données pour déterminer si la méthode est efficace, améliorer les performances et réduire l'analyse SQL inutile

  • la mise à jour optimise les autorisations de données du service et utilise le plan de dissimulation par défaut

  • la mise à jour optimise et complète le code pour générer les paramètres d'interface columnList, les annotations sont manquantes

  • la mise à jour optimise AddressUtils pour être compatible avec l'adresse IP locale du système Linux

  • la mise à jour optimise les informations du service du journal des opérations et les améliore

  • la mise à jour optimise les autorisations de données pour réduire les requêtes de vérification secondaires

  • update Modifier le problème d'incohérence entre l'obtention du token utilisateur et le backend (merci à bestrevens)

  • la mise à jour optimise la requête de mot de passe initiale de l'utilisateur de la version vue3 à partir du dictionnaire

  • update Optimiser le composant éditeur de texte enrichi pour vérifier le format de l'image

  • mise à jour : optimisation de la liste des journaux d'opérations et ajout d'une requête d'adresse IP

  • la mise à jour optimise le numéro d'utilisateur global du stockage de données

  • la mise à jour optimise le type de gestion des menus pour que l'état du bouton soit facultatif

Corrections de bugs

  • fix Résoudre le problème de plusieurs instances de création simultanées d'OssFactory

  • fix Correction des erreurs d'écriture de champ sur la page de démonstration

  • correctif : mettre à jour les rapports de suppression nuls après l'optimisation des autorisations de données

  • fix Résoudre le problème du cache de routage de niveau cinq non valide

  • réparer le service oss ne peut pas se connecter

  • fix Résoudre le problème de l'iframe du lien interne qui ne transmet pas les paramètres

  • fix Corrige l'exception qui se produit dans le port de lien externe

  • correctif : corrige le problème d'utilisation non autorisée du code administrateur intégré lors de la modification de caractères ordinaires.

  • corriger résoudre le problème de l'outil druide manquant en mode Seata XA

  • fix Résoudre le problème selon lequel la génération de code requise ne correspond pas à la base de données

  • fix Corrige l'erreur d'adresse de l'interface de téléchargement de texte enrichi

  • fix Résoudre le problème des paramètres de requête manquants dans le saut du composant HeaderSearch

  • fix Correction de l'erreur d'affectation de la nouvelle méthode dans la génération du code de structure arborescente

Présentation de la plateforme

RuoYi-Cloud-Plus 微服务通用权限管理系统réécrit RuoYi-Cloud pour une mise à niveau complète (non compatible avec le framework d'origine)

Le code et les documents du projet sont tous open source, gratuits et peuvent être utilisés commercialement. Suivez simplement l'accord open source et conservez les fichiers d'accord open source dans le projet. Vivez jusqu'à ce que vous soyez vieux et écrivez jusqu'à ce que vous soyez
vieux. Open source pour votre intérêt Open source pour l'apprentissage. Open source pour que chacun puisse véritablement apprendre la technologie.

Démonstration du système : https://plus-doc.dromara.org/#/common/demo_system

Adresse du projet front-end : https://gitee.com/JavaLionLi/plus-ui

Adresse du document : https://plus-doc.dromara.org

Différences fonctionnelles entre ce framework et RuoYi

Fonction ce cadre RuoYi
Projet frontal
Réécrire Vue3 + TS + ElementPlus basé sur le projet open source vue3-element-admin
Basé sur Vue2/Vue3 + JS
Structure du projet back-end Découplage structurel sous forme de plug-ins + packs d'extension pour une extension facile Les modules sont injectés les uns dans les autres et le couplage est très difficile à étendre.
Style de code back-end Formatage du code strictement conforme aux spécifications Alibaba et à la configuration unifiée du projet L'écriture du code est différente des structures conventionnelles, entraînant des difficultés de lecture
Centre d'inscription distribué En utilisant l'intégration du code source d'Alibaba Nacos pour faciliter les extensions de débogage et le cadre de développement secondaire, diverses surveillances y ont été ajoutées. Utiliser Alibaba Nacos pour créer vous-même une version purement officielle n'est pas fiable
Centre de configuration distribué En utilisant l'intégration du code source d'Alibaba Nacos pour faciliter les extensions de débogage et le cadre de développement secondaire, diverses surveillances y ont été ajoutées. Utiliser Alibaba Nacos pour créer vous-même une version purement officielle n'est pas fiable
passerelle de services Le framework SpringCloud Gateway est utilisé pour étendre une variété de fonctions
, telles que : l'authentification intranet, la mise en cache du corps des requêtes, la configuration inter-domaines, le journal des réponses aux requêtes, etc.
L'utilisation de SpringCloud Gateway a une seule fonction
l'équilibrage de charge L'extension SpringCloud Loadbalancer prend en charge le routage des équipes de développement pour faciliter le développement et le débogage multi-équipes. L'utilisation de SpringCloud Loadbalancer a une seule fonction
Appel à distance RPC Utilisant le nouvel Apache Dubbo 3.X, il va sans dire qu'il a une longue histoire. En utilisant la méthode d'écriture simulée avec des fonctions limitées, le réseau fluctue considérablement et est instable.
Fusible limiteur de courant distribué Utilisant l'intégration du code source d'Alibaba Sentinel pour faciliter les extensions de débogage et le cadre de développement secondaire, il ajoute également diverses fonctions de surveillance. Utiliser Alibaba Sentinel pour créer vous-même une version purement officielle n'est pas fiable
Transactions distribuées Utilisation de l'intégration du code source d'Alibaba Seata pour connecter Nacos et diverses surveillances afin de simplifier le processus de construction et de déploiement Utiliser Alibaba Seata pour créer vous-même une version purement officielle est fastidieux et Nacos n'est pas lié aux étranges méthodes d'utilisation du code.
Conteneur Web Utilisation d'Undertow, un conteneur hautes performances basé sur XNIO Utiliser Tomcat
Authentification de l'autorité Utilisation de Sa-Token et Jwt, utilisation statique, fonctions complètes, faible couplage et haute évolutivité Spring Security a une configuration lourde et une évolutivité extrêmement médiocre
Annotation d'autorisation Utilisez Sa-Token pour prendre en charge la vérification de connexion par annotation, la vérification de rôle, la vérification d'autorisation, la vérification d'authentification secondaire, la vérification HttpBasic, la vérification d'ignorance. La
vérification de rôle et d'autorisation prend en charge plusieurs conditions telles que AND ORou 权限 OR 角色et d'autres expressions complexes.
Prend uniquement en charge s'il y a une correspondance
Prise en charge de bases de données relationnelles La prise en charge native de MySQL, Oracle, PostgreSQL, SQLServer et
la commutation hétérogène peuvent être utilisées simultanément
Prend en charge Mysql et Oracle. L'utilisation simultanée et la commutation hétérogène ne sont pas prises en charge.
base de données cache Prend en charge Redis 5-7 et prend en charge la plupart des nouvelles fonctionnalités telles que la limitation de courant distribuée et les files d'attente distribuées Prise en charge simple de la configuration de Redis
Client Redis Adoptez Redisson Redis recommande officiellement les outils clients basés sur Netty.
Prend en charge plus de 90 % des commandes Redis. L'optimisation sous-jacente évite de nombreuses utilisations incorrectes. Par exemple : les clés sont converties pour être analysées. Prend en charge les
clusters autonomes, sentinelles, à maître unique, multi -cluster maître et autres modes.
Lettuce + RedisTemplate prend en charge peu de modes et les outils sont lourds à utiliser.
Le pool de connexions utilise un pool commun, ce qui pose souvent des problèmes dus à des bugs.
Mise en cache des annotations L'annotation Spring-Cache est utilisée pour étendre l'implémentation et prendre en charge davantage de fonctions,
telles que le délai d'expiration, le groupe de temps d'inactivité maximal, la longueur maximale, etc. Une seule annotation est nécessaire pour terminer la mise en cache automatique des données.
La logique du code Redis doit être écrite manuellement
Cadre ORM Utilisant Mybatis-Plus, il est basé sur des objets et ne nécessite pratiquement pas d'écriture SQL et un fonctionnement Java complet. Il existe de nombreux plug-ins puissants,
tels que le plug-in multi-tenant, le plug-in de pagination, le plug-in de verrouillage optimiste, etc.
L'utilisation de Mybatis basé sur XML nécessite du SQL manuscrit
Surveillance SQL Utilisez p6spy pour générer du SQL complet et exécuter la surveillance du temps La sortie du journal nécessite un épissage manuel de SQL et des paramètres, et les problèmes de débogage ne peuvent pas être visualisés rapidement
Pagination des données Le
framework de plug-in de pagination Mybatis-Plus est utilisé pour l'étendre. L'objet de pagination basé sur des objets prend en charge plusieurs façons de transmettre des paramètres. Il prend en charge le tri multiple frontal et le tri complexe.
L'utilisation de PageHelper ne prend en charge qu'une seule requête. Les paramètres de pagination ne peuvent être transmis qu'à partir de param. Une seule fonction de tri est disponible. Mauvaise évolutivité et mauvaise expérience.
autorisation de données Utilisez le plug-in Mybatis-Plus pour auto-analyser et épisser SQL. Filtrage non inductif.
Définissez simplement les conditions d'annotation pour le mappeur. Prend en charge plusieurs personnalisations et n'est pas limité aux rôles de service.
L'utilisation d'annotations + aop pour générer du SQL basé sur les rôles du service a une mauvaise compatibilité et ne prend pas en charge d'autres extensions métier.
Après avoir généré du SQL, il doit être manuellement épissé dans un SQL métier spécifique. Cela ne fonctionne pas pour plusieurs requêtes Mapper.
Désensibilisation des données L'utilisation d'annotations + désensibilisation Jackson pendant la sérialisation prend en charge différentes conditions de désensibilisation pour différents modules. Prend en charge
plusieurs stratégies telles que les cartes d'identité, les numéros de téléphone portable, les adresses, les adresses e-mail, les cartes bancaires, etc. et peut être étendue par elle-même.
aucun
Cryptage et décryptage des données Utilisez annotations + intercepteur mybatis pour crypter et déchiffrer automatiquement les données lors de l'accès aux données.
Prend en charge plusieurs stratégies telles que BASE64, AES, RSA, SM2, SM4, etc.
aucun
Traduction de données Utilisez annotations + jackson pour modifier dynamiquement les données à traduire pendant la sérialisation.
Prise en charge de plusieurs modes : 映射翻译 直接翻译 其他扩展条件翻译l'expansion personnalisée peut être effectuée en deux étapes via l'interface et les implémentations de traduction multiples intégrées.
aucun
Cadre de sources de données multiples Utilisez une source de données dynamique pour prendre en charge la plupart des bases de données dans le monde.
Vous pouvez gérer dynamiquement des bases de données hétérogènes de différents types via la configuration yml. Vous pouvez également ajouter des sources de données via la page frontale.
Prend en charge les expressions spel pour changer de source de données à partir des paramètres d'en-tête de requête et D'autres conditions.
L'écriture manuelle de code pour configurer des sources de données basées sur Druid est fastidieuse et peu prise en charge.
Transactions de sources de données multiples Utilisez une source de données dynamique pour prendre en charge différents types d'annulation de transactions de base de données à partir de plusieurs sources de données pas de support
Pool de connexions à la base de données Utilisant le pool de connexions intégré officiel de HikariCP Spring, la configuration est simple et réputée pour ses performances et sa stabilité. Utilisation de bugs Druid, nombreuses maintenances communautaires, faible activité et configuration faible, nombreuses configurations lourdes, performances moyennes
Clé primaire de base de données En utilisant Snowflake ID pour développer des identifiants uniques de manière ordonnée en fonction des horodatages, vous n'avez plus à vous soucier de la fusion des conflits de clés primaires et de la duplication des données dans les sous-bases de données et les sous-tables. Utilise l'ID d'incrémentation automatique de la base de données pour prendre en charge un volume de données limité et ne prend pas en charge les clés primaires uniques provenant de plusieurs sources de données.
Protocole WebSocket Le protocole WebSocket encapsulé par Spring étend l'authentification par Token et la synchronisation de sessions distribuées. Ce n'est plus seulement un gaspillage basé sur une seule machine. aucun
Sérialisation L’utilisation de la sérialisation intégrée officielle de Jackson Spring est fiable !!! L'utilisation de fastjson bugjson est célèbre dans le monde entier
Idempotence distribuée Reportez-vous à la mise en œuvre simplifiée du système anti-gravité Meituan GTIS (voir le document pour plus de détails) Les annotations écrites manuellement sont implémentées sur la base d'aop
Planification distribuée des tâches Grâce à PowerJob, il prend naturellement en charge un centre de gestion distribué et unifié. La couche inférieure est basée sur JPA et prend en charge plusieurs bases de données. Avec Quartz, un cluster avec de mauvaises performances de verrouillage de base de données nécessite de nombreuses configurations et modifications.
Centre de journaux distribué Utilisez la solution éprouvée d'ELK pour collecter les journaux d'exécution de tous les services en temps réel afin d'identifier et de localiser rapidement les problèmes. aucun
Moteur de recherche distribué Utilisez ElasticSearch, Easy-Es et Mybatis-Plus pour faire fonctionner ElasticSearch aucun
File d'attente de messages distribuée Utiliser SpringCloud-Stream pour prendre en charge Kafka, RocketMQ, RabbitMQ aucun
Fonction de sous-base de données et de sous-table Adoptez le service proxy Apache Sharding-Proxy sans intrusion pour prendre en charge le partitionnement des bases de données et des tables. Il vous suffit d'écrire des règles pour le partitionnement des bases de données et des tables. aucun
Stockage de fichiers Grâce au stockage de fichiers distribué Minio, il prend automatiquement en charge le stockage multi-machines, multi-disques durs, multi-fragments et multi-copies. Il prend en
charge la gestion des autorisations et est sûr et fiable. Les fichiers peuvent être cryptés pour le stockage.
L'utilisation de fichiers natifs pour stocker des fichiers nus est facile à perdre et à fuir. Elle ne prend pas en charge les clusters et a un effet ponctuel unique.
stockage en ligne Le client du protocole AWS S3 prend en charge Qiniu, Alibaba, Tencent et d'autres fabricants prenant en charge le protocole S3. pas de support
Message court Prend en charge Alibaba et Tencent. Il vous suffit de configurer la clé du fabricant dans yml pour utiliser la prise en charge de l'interface afin d'étendre d'autres fabricants. pas de support
mail Utiliser le protocole commun mail-api pour prendre en charge la plupart des fournisseurs de messagerie pas de support
Documentation des interfaces Utilisation de SpringDoc et javadoc, aucune annotation et zéro intrusion. Basé sur les annotations Java, il
vous suffit d'écrire les annotations sans avoir à écrire beaucoup d'annotations de documents.
L'utilisation de Springfox a arrêté la maintenance et nécessite l'écriture d'un grand nombre d'annotations pour prendre en charge la génération de documents.
Cadre de validation Utilisez la validation pour prendre en charge les annotations et les annotations de vérification des outils pour prendre en charge l'internationalisation. Seules les annotations sont prises en charge et les annotations ne prennent pas en charge l'internationalisation.
Cadre Excel En utilisant Alibaba EasyExcel basé sur le
framework de plug-in, de nombreuses fonctions y ont été ajoutées, telles que la fusion automatique du même contenu, l'arrangement automatique, la mise en page, la traduction de dictionnaire, etc.
Basées sur l’écriture manuscrite des POI, les fonctions sont limitées, complexes et peu évolutives.
Cadre d'outils Utilisez des centaines d'outils tels que Hutool et Lombok pour couvrir 90 % des besoins d'utilisation. Générez automatiquement une grande quantité de code pour des frameworks simplifiés tels que Get Set basé sur des annotations. Les outils d'écriture manuscrite ont une mauvaise stabilité et sont sujets à des problèmes. Le nombre d'outils est limité et le code est volumineux. Vous devez écrire get, set, etc. à la main.
Cadre de surveillance des services Grâce à SpringBoot-Admin, basé sur le mécanisme de sonde d'actionneur officiel de SpringBoot,
le cadre d'état du service de surveillance en temps réel étend également la visualisation et la surveillance des journaux en ligne.
aucun
Surveillance complète et alarme Utilisez Prometheus et Grafana pour diversifier la collection, plusieurs modèles, un affichage sur grand écran, une surveillance des alarmes en temps réel et fournir des documents de construction détaillés. aucun
traçage des liens En utilisant Apache SkyWalking, êtes-vous toujours inquiet de savoir où la requête est allée et s'est mal passée ?
Grâce à lui, vous pouvez visualiser chaque nœud traversé par la requête en temps réel.
aucun
Générateur de code Concevez simplement la structure du tableau et générez tous les codes et pages CRUD en un seul clic.
Réduisez 80 % des efforts de développement et concentrez-vous sur la conception commerciale.
Le framework adapte les codes standardisés MP et SpringDoc et prend en charge la génération dynamique de code source multi-données.
La structure native de génération de code ne prend en charge que la génération d'une seule source de données.
Méthode de déploiement Prend en charge l'orchestration Docker pour créer tous les environnements en un seul clic, afin que les développeurs n'aient plus à se soucier de la configuration des environnements. Pour déployer Jar natif dans d’autres environnements, vous devez le télécharger et l’installer manuellement et le créer vous-même.
Modification du chemin du projet Fournissez des documents détaillés du plan de modification et apportez-y quelques modifications. Il est très facile de le modifier comme vous le souhaitez. Nécessite beaucoup de modifications et une documentation limitée
la mondialisation Le retour dynamique du contenu texte dans différentes langues en fonction des en-têtes de requête est facile à développer et dispose de classes d'outils correspondantes pour prendre en charge l'internationalisation de la plupart des contenus d'annotation. Seules les fonctions de base sont fournies, les autres extensions doivent être écrites par vous-même
Test de cas unique de code Fournit des méthodes d'écriture de tests dans un cas unique et des plug-ins de test uniques multi-environnements Maven Seules les fonctions de base sont fournies, les autres extensions doivent être écrites par vous-même
Cas de démonstration Fournir des cas d'utilisation pratiques pour les fonctionnalités du framework. Un seul module fournit de nombreux cas d'utilisation très complets. aucun

Différences commerciales entre ce framework et RuoYi

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

Je suppose que tu aimes

Origine www.oschina.net/news/268340/ruoyi-cloud-plus-1-8-2-maintain
conseillé
Classement