Aperçu
YMP est un framework de développement d'applications JAVA léger très simple et facile à utiliser. Les principes de conception se concentrent principalement sur la simplification des tâches de travail, la standardisation du processus de développement, l'amélioration de l'efficacité du développement et la création d'un travail de développement aussi simple que la construction. blocs. C’est l’objectif vers lequel nous travaillons sans relâche !
Principales caractéristiques techniques
Adopte une méthode de packaging composée de composants et modulaires, peut être assemblée à la demande, flexible et évolutive
Utilise un micro-noyau pour implémenter Autoscan, AOP, IoC, Event, etc., couvrant la plupart des SSH ; framework Certaines fonctions de base ;
Architecture de configuration unifiée, expérience de différents modes de configuration et de gestion des ressources de fichiers ;
Intégrer plusieurs systèmes de journalisation (log4j, jcl, slf4j), les fichiers journaux peuvent être stockés séparément ; encapsulation de la couche de persistance, prenant en charge les RDBMS (MySQL, SQLServer, Oracle, etc.) et NoSQL (MongoDB, Redis, etc.)
Mécanisme de plug-in complet pour faciliter une répartition plus fine des activités
- ;
Expérience unique de développement de services indépendants ;
Cadre de vérification puissant, entièrement basé sur les annotations Java, facile à utiliser et à développer
Service de mise en cache flexible, prenant en charge EhCache, Redis et la technologie de cache multi-niveaux (MultiLevel) ;
- Configuration d'une architecture MVC simple, puissante et facile à maintenir et à développer, prend en charge le style RESTful, prend en charge JSP, HTML, Binary, Freemarker, Velocity et d'autres technologies d'affichage
- Modules et fonctions Le framework YMP est ; principalement composé du noyau du framework (Core) et de plusieurs modules (Modules). La structure globale est très simple et claire, comme le montre la figure :
Le noyau du framework (Core)
est principalement responsable du l'initialisation et le chargement des modules et la gestion du cycle de vie, les fonctions incluent :
Gestionnaire d'objets de classe : fournit une analyse automatique des classes de packages et des fonctionnalités telles que la gestion du cycle de vie des beans, l'injection de dépendances et l'interception de méthodesService d'événements : via l'enregistrement et la diffusion d'événements ; moyen de déclencher et de surveiller les actions d'événements, et prend en charge deux modes d'exécution synchrone et asynchrone des files d'attente d'événements
Module : il s'agit de la forme de base d'encapsulation de toutes les fonctionnalités fonctionnelles du framework YMP et est responsable de la gestion du cycle de vie du module International Resource Manager : fournit un chargement, une destruction et une lecture de contenu unifiés, et prend en charge le chargement de ressources personnalisées et la surveillance des événements pour les changements de langue De plus, un ensemble de structures de données personnalisées et diverses classes d'outils requises dans le framework ; sont fournis ; Le système de configuration
permet une gestion unifiée de diverses ressources de fichiers telles que la configuration pendant le développement et la maintenance du projet via une structure de répertoires simple, offrant une solution flexible, simple et efficace pour le développement et le déploiement modulaires :
- Standardiser le processus de développement modulaire et la gestion unifiée des fichiers de ressources ;
- Bénéficier des avantages d'une réutilisation efficace des ressources et d'une construction, d'un déploiement, d'une sauvegarde et d'une migration de systèmes flexibles ;
- Mode de récupération, de chargement et de gestion simple des fichiers de configuration ; entre les modules, les modules peuvent partager des fichiers de ressources tels que la configuration, les classes et les packages jar du projet auquel ils appartiennent ;
- Prend en charge l'analyse des fichiers de configuration XML et Propriétés par défaut et peut personnaliser le format de fichier via l'interface IConfigurationProvider, prend en charge la mise en cache et évite les chargements répétés ;
- Les objets de configuration prennent en charge la déclaration d'annotation, et le contenu de configuration peut être automatiquement chargé et rempli dans les objets de classe sans codage ;
- La construction et la distribution de modules intégrés, le démarrage et l'arrêt du service* et la structure claire de classification des fichiers de ressources peuvent être rapidement situé
Persistence (Persistence)
JDBC
Une solution simple pour l'accès aux données de base de données relationnelle (SGBDR), principalement axée sur l'efficacité de l'accès aux données, facilité d'utilisation et transparence, il présente les caractéristiques fonctionnelles suivantes :Package léger basé sur l'API du framework JDBC, structure simple, facile à développer, déboguer et maintenirest basé sur l'encapsulation du pilote Jedis, adopte un mécanisme de session, prend en charge plusieurs sources de données et configuration de pool de connexions, doit encore être amélioré et amélioré, et la documentation est en cours d'organisation, alors restez à l'écoute...Redis
- Mise à jour optimisée des données par lots, jeu de résultats standardisé, pré-compilation SQL ; traitement des instructions ;
- Prend en charge les opérations ORM à entité unique sans écrire d'instructions SQL ;
- Fournit des outils d'échafaudage pour générer rapidement des classes d'entités de données et prend en charge les appels en chaîne
- Prend en charge la personnalisation des instructions SQL via des annotations de mémoire ou le chargement à partir de fichiers de configuration SQL et exécutés automatiquement ;
- Prend en charge l'assemblage automatique des ensembles de résultats et des objets de valeur, et prend en charge les règles d'assemblage personnalisées ;
- Prend en charge plusieurs sources de données, prend en charge la configuration du pool de connexions C3P0, DBCP, JNDI par défaut et prend en charge l'extension de sources de données ; tels que : Oracle, MySQL, SQLServer, etc.) ;
- Prend en charge l'encapsulation des requêtes de base de données orientées objet, ce qui aide à réduire ou à réduire les erreurs de compilation du programme ;
- Prend en charge l'imbrication des transactions de base de données* ;
- MongoDB
Compte tenu des caractéristiques des opérations d'accès aux données de MongoDB, il est simplement encapsulé avec l'idée de conception du module JDBC, utilisant le mécanisme de session pour prendre en charge la configuration de sources de données multiples et les opérations d'entité, basées sur les objets les requêtes, MapReduce, GridFS, l'agrégation et l'intégration d'expressions de fonctions, etc., doivent encore être améliorés et améliorés. La documentation est en cours de compilation, alors restez à l'écoute...
Plugin (Plugin)
utilise un chargeur de classe ClassLoader indépendant pour gérer les packages JAR privés, les classes, les fichiers de ressources, etc. L'objectif de conception est de diviser les exigences en une granularité plus fine dans le mode de développement d'interface, afin d'atteindre a Une forme d'encapsulation idéale de code réutilisable ;
Chaque plug-in est un monde fermé. La seule façon de communiquer avec le monde extérieur est via des appels d'interface métier. Le conteneur qui gère ces plug-ins est appelé une fabrique de plug-ins. , qui est responsable de l'analyse, du chargement et de l'initialisation, ainsi que de la gestion du cycle de vie du plug-in. Le module de plug-in prend en charge la création de plusieurs instances d'usine de plug-in. Les objets d'usine sont complètement indépendants et possèdent. aucune dépendance ;
Service (Serv)
Un ensemble d'implémentations basées sur NIO Le cadre de service de communication fournit une encapsulation client et serveur des protocoles TCP et UDP, une surveillance flexible des messages et un encodage/décodage du contenu des messages, et une configuration simple rend secondaire développement plus pratique ;
En même temps, il fournit la reconnexion et le chaînage de déconnexion par défaut. L'entretien routier (battement de cœur) et d'autres services de support, il vous suffit de comprendre l'entreprise pour terminer facilement le travail de développement.
Validation
L'outil de vérification de la validité des paramètres côté serveur utilise la déclaration d'annotation pour configurer les règles de vérification, ce qui est plus simple, plus intuitif et plus convivial. Il prend en charge la vérification des paramètres de méthode et des attributs de membre de classe, ainsi que l'internationalisation des résultats de vérification. Liaison de ressources I18N, prend en charge les validateurs personnalisés et prend en charge plusieurs modes de vérification
Cache (Cache)
utilise EhCache comme service de cache en cours de processus JVM par défaut et réalise une mise en cache à plusieurs niveaux (MultiLevel) en intégrant des services Redis externes ; Cadre de mise en cache Magnitude et intégration approfondie avec le framework YMP (prend en charge la mise en cache des méthodes de classe et peut être mis en cache en fonction des valeurs des paramètres de méthode), configuration flexible, facile à utiliser et à étendre
Framework WebMVC
Module WebMVC dans le framework YMP ; est un autre module très important en plus du module JDBC. Il intègre de nombreuses fonctionnalités du framework YMP. Il conserve toujours un style simple et cohérent dans la conception et l'utilisation de la structure fonctionnelle. Il hérite également des gènes du framework MVC traditionnel. Pour les développeurs familiarisés avec SSH et d'autres technologies de framework, il est extrêmement facile de démarrer et il n'y a aucun coût d'apprentissage.
Les principales caractéristiques fonctionnelles sont les suivantes :
- Implémentation MVC standard, structure claire, configuration simple entièrement basée sur des annotations ;
- Prend en charge le mode convention, pas besoin d'écrire du code de contrôleur, correspond et exécute directement les vues ; afficher les technologies (JSP, Freemarker, Velocity, Text, HTML, JSON, Binary, Forward, Redirect, HttpStatus, etc.) ;
- Prend en charge le mode RESTful et le style d'URL ;
- Prend en charge la liaison automatique des paramètres de requête et des paramètres de méthode de contrôleur ;
Prend en charge la vérification de la validité des paramètres ; Prend en charge l'interception des méthodes du contrôleur ; Prend en charge le mappage de routage des demandes de contrôleur de configuration d'annotation ; Prend en charge l'analyse automatique des classes de contrôleur et l'enregistrement ; Prend en charge le traitement personnalisé des événements et des exceptions ; internationalisation ; Prend en charge les méthodes de contrôleur et la mise en cache des vues ; Prend en charge l'échappement des paramètres du contrôleur ; Prend en charge les extensions de plug-in ;One More Thing
YMP offre non seulement une expérience de développement pratique et rapide pour les projets Web et autres projets Java, mais continuera également à fournir une expérience pratique de projet plus riche.
Les amis intéressés peuvent rejoindre le groupe QQ officiel 480374360 pour communiquer et apprendre ensemble et aider YMP à se développer !
Pour en savoir plus sur le framework YMP, veuillez visiter le site officiel : http://www.ymate.net/