Le principe du framework ssm est d'intégrer Spring, SpringMVC et MyBatis comme framework pour des projets web avec des sources de données relativement simples. Le processus est le suivant : le mappage de gestionnaire trouve le gestionnaire correspondant en fonction de la demande, appelle la logique métier pour le traitement, puis effectue l'analyse de la vue.
Introduction au framework SSM
L'ensemble de framework SSM (Spring+SpringMVC+MyBatis) comprend Spring, MyBatis Il est intégré à deux frameworks open source (SpringMVC fait partie de Spring). SSM est souvent utilisé comme cadre pour des projets Web avec des sources de données simples.
SpringMVC
SpringMVC intercepte les demandes des utilisateurs dans le projet. Son servlet principal, DispatcherServlet, assume la responsabilité d'un intermédiaire et fait correspondre les demandes des utilisateurs au contrôleur via HandlerMapping. demande.
Processus en cours d'exécution du framework SpringMVC
L'utilisateur envoie la demande à DispatcherServlet
DispatcherServlet reçoit la demande et interroge un ou plusieurs HandlerMapping pour trouver et traiter le gestionnaire de requête ;
HandlerMapping trouve le Handler correspondant en fonction de la requête, génère un objet Handler et le renvoie à DispatcherServlet ;
DispatcherServlet appelle Handler via HandlerAdapter ; traitement et retourne à ModelAndView une fois le traitement terminé ;
HandlerAdapter renvoie le résultat du traitement du gestionnaire ModelAndView à DispatcherServlet ;
DispatcherServlet interroge un ou plusieurs ViewReslover (résolveurs de vues) et transmet le ModelAndView au ViewReslover spécifié ;
Après le ViewReslover est analysé, il renvoie la vue spécifique à DispatcherServlet ;
DispatcherServlet restitue la vue (remplit les données du modèle dans la vue)
DispatcherServlet répond à l'utilisateur et la vue affiche les résultats sur le client.
Le processus est à peu près le suivant :
a. Intercepter les requêtes URL qui correspondent à un format spécifique
b. Initialiser le WebApplicationContext correspondant au contexte DispatcherServlet et l'associer au WebApplicationContext du ; couche métier et couche de persistance ;
c. Initialisation Chaque composant de Spring MVC est assemblé dans DispatcherServlet.
SpringSpring est comme une grande usine pour assembler des beans dans l'ensemble du projet. Dans le fichier de configuration, vous pouvez spécifier l'utilisation de paramètres spécifiques pour appeler le constructeur. de la classe d’entité. Instanciez l’objet. On peut aussi l'appeler la colle du projet.
L'idée principale de Spring est IOC (Inversion of Control), ce qui signifie que les programmeurs n'ont plus besoin de créer explicitement un nouvel objet, mais de laisser le framework Spring faire tout pour vous. Le conteneur IOC est chargé d'instancier, de localiser, de configurer les objets dans l'application et d'établir des dépendances entre ces objets. Le but de Spring est de garantir que la relation entre les objets (modules et modules) n'est pas liée via du code, mais est gérée via des descriptions de classes de configuration (Spring assemble dynamiquement les objets en interne par réflexion basée sur ces configurations).
Le conteneur IOC représente l'interface BeanFactory dans le package org.springframework.beans, qui fournit les fonctions de base du conteneur IOC ; et l'interface ApplicationContext sous le package org.springframework.context étend le BeanFactory et fournit également l'intégration avec Spring. AOP, traitement d'internationalisation, propagation d'événements et fourniture de différents niveaux d'implémentation de contexte.
Pour faire simple, BeanFactory fournit les fonctions les plus basiques du conteneur IOC, tandis qu'ApplicationContext ajoute davantage de prise en charge des fonctions au niveau de l'entreprise. ApplicationContext hérite entièrement de BeanFactory, donc la sémantique de BeanFactory s'applique également à ApplicationContext.
Processus de fonctionnement du printemps
Charger le fichier de configuration, interface ApplicationContext. Les informations du bean dans le fichier de configuration sont chargées dans le HashMap. Un bean comprend généralement un identifiant, une classe, une propriété, etc. L'identifiant du bean correspond à la clé dans le HashMap et la valeur dans le HashMap est le bean.
Appelez la méthode getBean. getBean est utilisé pour obtenir le bean dans le fichier applicationContext.xml. Le paramètre est l'identifiant du bean. En général, il sera obligé de se convertir vers la couche métier (interface) correspondante.
Appelez la méthode de la couche métier (implémentation de l'interface).
Comment le contenu du grain est-il injecté ? Pour faire simple, lorsqu'un bean est instancié, la classe est réellement instanciée. Elle appelle la méthode set dans la classe par réflexion pour injecter dans la classe les attributs de classe précédemment enregistrés dans le HashMap. Cela nous ramène à la place originale de Java, object.property, object.method.
Mybatis
Mybatis est une encapsulation de jdbc, qui rend transparentes les opérations sous-jacentes de la base de données. Les opérations Mybatis tournent toutes autour d'une instance sqlSessionFactory. Mybatis est associé au fichier Mapper de chaque classe d'entité via le fichier de configuration. Le fichier Mapper est configuré avec le mappage d'instructions SQL requis pour chaque classe vers la base de données. Chaque fois que vous interagissez avec la base de données, obtenez une sqlSession via sqlSessionFactory, puis exécutez la commande sql.
Mybatis proxy dynamiquement dao via MapperProxy C'est-à-dire que lors de l'exécution de la méthode dans le dao écrite par vous-même, le MapperProxy correspondant agit en fait comme proxy.
Principe de fonctionnement de Mybatis
Charger le fichier de configuration
Charger les informations de configuration SQL dans les objets MappedStatement, y compris la configuration du mappage des paramètres, l'exécution des instructions SQL, la configuration du mappage résultant , sont stockés en mémoire.
Analyse SQL
Lorsque la couche d'interface API reçoit la demande d'appel, elle recevra l'ID du SQL entrant et de l'objet entrant (peut être Map/JavaBean ou type de données de base), et Mybatis trouvera celui correspondant en fonction de l'ID du SQL MappedStatement, puis analysé en fonction de l'objet paramètre entrant MappedStatement. Après l'analyse, l'instruction SQL et les paramètres à exécuter peuvent être obtenus.
Exécution SQL
Obtenez le SQL final et les paramètres dans la base de données pour l'exécution et obtenez le résultat de l'exploitation de la base de données.
Mappage des résultats
Convertissez les résultats de l'exploitation de la base de données en fonction de la configuration du mappage, qui peut être converti en HashMap/JavaBean ou en types de données de base, et renvoyez le résultat final.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!