1. Avant-propos :
Ma connaissance de SpringMVC vient du fait que je voulais créer une plateforme de gestion de compte public WeChat pour le plaisir. Puisque je veux faire cela, je dois réfléchir au choix de la plateforme. . Parce que mon ami ne dispose que d'un hôte virtuel exécutant un système Linux, et que certains de ses propres forums fonctionnent également dessus. L'hôte virtuel Windows est introuvable et il ne peut certainement pas être remplacé par un système hébergé par un ami. Au début, j'avais prévu d'utiliser mono pour exécuter le framework du précédent projet .Net MVC pour voir s'il pouvait être utilisé, mais j'ai découvert qu'il ne pouvait pas s'exécuter du tout (le projet utilisait Spring.NET à cette époque, mono et Spring.NET n'était pas compatible et Sping.NET Le forum a déclaré que cela était dû à un problème avec le mécanisme d'implémentation de la réflexion de mono. La bonne nouvelle est que le dernier projet Spring.NET prend déjà en charge mono, bien que le site officiel indique qu'il en existe encore. bugs, c'est bien mieux qu'avant quand il n'était pas capable de fonctionner du tout. Je pense que ce sera le cas à l'avenir. Voir SPRING-NET-MONO pour plus de détails, vous aurez peut-être besoin de FQ, vous savez. ...).
J'ai donc décidé d'utiliser Java pour le développement. La première chose que j'ai commencé à lire était des informations sur le framework SSH classique. J'ai même acheté un livre pour référence, mais j'ai commencé à avoir des questions après n'avoir pas beaucoup lu. La chose la plus inacceptable est l'approche de Struts2 consistant à utiliser une action par classe (quelqu'un dans les commentaires a déjà souligné que Struts2 peut également implémenter plusieurs méthodes d'action, merci beaucoup pour votre correction).
Selon cette approche, 4 classes sont nécessaires pour implémenter le fonctionnement CURD de base d'un objet, et une classe Java ne peut appartenir qu'à un seul fichier de classe. De cette façon, un projet générera un tas de fichiers de classe. juste par action. De plus, il n'y a qu'une seule action dans le fichier et il n'y a pas beaucoup de contenu. C'est trop verbeux et j'ai l'impression que l'efficacité du développement est très faible (les sentiments ci-dessus ne sont que mes sentiments lorsque j'ai vu struts2 à l'époque. . Veuillez me critiquer et me corriger s'il y a quelque chose qui ne va pas), j'ai donc décidé de passer à d'autres méthodes. Je viens de voir l'introduction de Spring MVC de Spring 3, le contrôleur basé sur les annotations et la méthode de déclaration d'action sont très similaires à .Net MVC, et j'ai immédiatement décidé de l'adopter, c'est pourquoi cette série d'articles est née.
Convention :
La version Spring utilisée dans cette série est :
spring-framework-3.2.5.RELEASE, et la version Hibernate est hibernate-release-4.2. 8.Final , en utilisant la combinaison de Spring Hibernate et Spring MVC.
2. Qu'est-ce que Spring MVC :
Spring MVC est un produit de suivi de SpringFrameWork, qui fournit un module MVC complet pour la création de sites Web. applications, et Struts2 est également un excellent framework MVC.La différence est que depuis l'introduction des contrôleurs annotés dans Spring 2.5 et l'amélioration continue après Spring 3, la structure de développement utilisant le framework Spring MVC est claire et l'efficacité est grandement améliorée.
3. Processus de réponse Spring MVC annoté : dessin 1 4. Description simple des interfaces et classes importantes :
DispatcherServlet : contrôleur frontal, utilisé pour recevoir des demandes.
Interface HandlerMapping : Mappage utilisé pour gérer les requêtes.
DefaultAnnotationHandlerMapping : Implémentation de l'interface HandlerMapping, utilisée pour mapper une URL à une classe Controller spécifique.
Interface HandlerAdapter : Mappage utilisé pour gérer les requêtes.
AnnotationMethodHandlerAdapter : Un exemple de l'interface HandlerAdapter, utilisée pour mapper une URL à une méthode de la classe Controller correspondante.
Interface ViewResolver : utilisée pour analyser View.
InternalResourceViewResolver : implémentation de l'interface ViewResolver, utilisée pour résoudre le nom de vue logique de ModelAndView en une vue spécifique.
Ce qui précède est la première introduction à SpringMVC dans la série d'apprentissage SpringMVC (1). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !