RuoYi-Vue-Plus publie la version 4.8.2 et entre officiellement en 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 4.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 5.X.

Mise à niveau des dépendances

  • mise à jour springboot 2.7.17 => 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

  • mettre à jour springboot 2.7.14 => 2.7.17

  • mise à jour vers 1.36.0 => 1.37.0

  • 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 modifie le niveau de journalisation par défaut en info pour éviter trop de journaux (activez le débogage si nécessaire)

  • 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 les informations du service du journal des opérations et améliore la page vue3

  • 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 (merci Bai Zhu)

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

  • 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 Corrige l'erreur dans le champ formulaire de la démo (merci à dhb52)

  • correctif : le service de la file d'attente se bloque avant l'heure de livraison du message, ce qui entraîne la non-réception du message après le redémarrage

  • 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

  • correctif : corrige le problème d'exception métier causé par l'incapacité du service oss à se connecter. Les requêtes ne devraient pas affecter l'entreprise.

  • 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.

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

  • 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 des nouvelles méthodes dans la génération du code de l'arborescence (merci d'être encore ordinaire cet été)

Présentation de la plateforme

RuoYi-Vue-Plus est une réécriture de RuoYi-Vue 分布式集群entièrement mise à niveau pour tous les scénarios (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.

Différences fonctionnelles entre ce framework et RuoYi

Fonction ce cadre RuoYi
Projet frontal Basé sur Vue3 + TS + ElementPlus 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
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 Utiliser Xxl-Job pour prendre en charge naturellement un centre de gestion unifié distribué Avec Quartz, un cluster avec de mauvaises performances de verrouillage de base de données nécessite de nombreuses configurations et modifications.
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 Utilisez le package d'intégration SMS sms4j pour prendre en charge des dizaines de fabricants de SMS. Il vous suffit de configurer la clé du fabricant dans yml pour l'utiliser et peut être partagée par plusieurs 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 suivi 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
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 utilisateurs Configuration de la gestion des utilisateurs telle que : ajout de nouveaux utilisateurs, affectation des utilisateurs aux départements, rôles, postes, etc. soutien soutien
Gestion du département Configurer l'organisation du système (entreprise, service, groupe). L'affichage de l'arborescence prend en charge les autorisations de données. soutien soutien
Gestion des postes Configurer les positions des utilisateurs du système soutien soutien
Gestion des menus Configurez le menu système, les autorisations de fonctionnement, l'identification des autorisations des boutons, etc. soutien soutien
gestion des rôles Attribution des autorisations du menu Rôle, définition des rôles, division des autorisations de plage de données par organisation soutien soutien
Gestion du dictionnaire Conserver certaines données relativement fixes fréquemment utilisées dans le système soutien soutien
Gestion des paramètres Configurer dynamiquement les paramètres communs du système soutien soutien
annonce Publication et maintenance des informations d'annonce de notification du système soutien soutien
Journal des opérations Enregistrement et requête du journal de fonctionnement normal du système Enregistrement et requête du journal des informations anormales du système soutien soutien
Journal de connexion La requête du journal de connexion système contient une exception de connexion soutien soutien
Gestion de fichiers Affichage, téléchargement, téléchargement, suppression et autre gestion des fichiers système soutien aucun
Gestion de la configuration des fichiers Ajout, modification, suppression et autre gestion dynamique des informations de configuration requises pour le téléchargement et le téléchargement des fichiers système soutien aucun
Gestion des utilisateurs en ligne Surveillance des informations des utilisateurs en ligne et expulsion forcée des systèmes connectés soutien soutien
tâches planifiées Exécution de rapports, gestion des tâches (ajouter, modifier, supprimer), gestion des journaux, gestion des exécuteurs, etc. soutien Prend uniquement en charge la gestion des tâches et des journaux
génération de code La génération de code front-end et back-end à partir de plusieurs sources de données (java, html, xml, sql) prend en charge le téléchargement CRUD soutien Ne prend en charge qu'une seule source de données
Interface système Générez automatiquement des documents d'interface API pertinents en fonction du code métier soutien soutien
Surveillance des services Surveillez le processeur, la mémoire, le disque, la pile, les journaux en ligne, la configuration liée à Spring, etc. soutien Prend uniquement en charge la surveillance autonome du processeur, de la mémoire et du disque
Surveillance du cache Interrogez les informations du cache du système, les statistiques des commandes, etc. soutien soutien
Constructeur en ligne Faites glisser les éléments du formulaire pour générer le code HTML correspondant. soutien soutien
Cas d'utilisation Quelques cas fonctionnels du système soutien pas de support

Documentation de référence

Veuillez lire attentivement les notes clés du document avant d'utiliser le cadre.

Projets d'initialisation à lire absolument

https://gitee.com/dromara/RuoYi-Vue-Plus/wikis/pages?sort_id=4164117&doc_id=1469725

Chroniques et vidéos à lire absolument pour commencer

https://gitee.com/dromara/RuoYi-Vue-Plus/wikis/pages?sort_id=5473272&doc_id=1469725

Un incontournable pour les projets de déploiement

https://gitee.com/dromara/RuoYi-Vue-Plus/wikis/pages?sort_id=4219382&doc_id=1469725

Wiki de documentation de référence

https://gitee.com/dromara/RuoYi-Vue-Plus/wikis/pages

Guess you like

Origin www.oschina.net/news/268338/ruoyi-vue-plus-4-8-2-maintain