Maison > Java > javaDidacticiel > La différence entre la couche de contrôle SpringMVC et Struts2

La différence entre la couche de contrôle SpringMVC et Struts2

黄舟
Libérer: 2017-03-03 10:11:10
original
1603 Les gens l'ont consulté

Nos frameworks de couche MVC et de couche de contrôle couramment utilisés incluent principalement Struts2 et SpringMVC, qui correspondent respectivement à Action et Controller. Alors, quelles sont les principales différences entre SpringMVC et Struts ?

1. Mécanisme du framework

Nous savons que Struts2 utilise Filter pour implémenter, tandis que SpringMVC utilise Servlet pour implémenter.

Struts2 utilise StrutsPrepareAndExecuteFilter, tandis que SpringMVC utilise DispatcherServlet. Le filtre est un servlet spécial. Le filtre est initialisé après le démarrage du conteneur ; il plante après l'arrêt du service, plus tard que le Servlet. Le servlet est initialisé lorsqu'il est appelé, avant que Filter ne soit appelé ; il plante après l'arrêt du service.


2. Mécanisme d'interception

1. Struts2

Le framework Struts2 est une interception au niveau de la classe. Chaque requête créera une action lorsqu'elle sera intégrée à Spring, l'action Struts2. La portée d'injection Bean est le prototype en mode prototype (sinon des problèmes de concurrence de threads se produiront), puis les données de la requête sont injectées dans la propriété via des setters et des getters.

Dans Struts2, une Action correspond à un contexte de requête et de réponse lors de la réception de paramètres, ils peuvent être reçus via des attributs. Cela montre que les paramètres d'attribut sont partagés par plusieurs méthodes.


2. SpringMVC

SpringMVC est une interception au niveau de la méthode. Une méthode correspond à une requête. contexte Par conséquent, la méthode est fondamentalement indépendante et a un accès exclusif aux données de demande et de réponse. Chaque méthode correspond à une URL à la fois. Le paramètre passé est directement injecté dans la méthode, ce qui est unique à la méthode. Les résultats du traitement sont renvoyés au framework via ModeMap.

Lors de l'intégration de Spring, le Controller Bean de SpringMVC est par défaut en mode Singleton, donc par défaut, un seul contrôleur sera créé pour toutes les requêtes, et il ne devrait y avoir aucun attribut partagé. il est donc thread-safe. Si vous souhaitez modifier la portée par défaut, vous devez ajouter l'annotation @Scope pour la modifier.


3. Performances

SpringMVC n'implémente aucune configuration. En raison de l'interception basée sur la méthode de SpringMVC, l'injection de bean en mode singleton est chargée une fois. Struts2 est une interception au niveau de la classe. Chaque demande d'une nouvelle action correspondant à l'instance nécessite le chargement de toutes les injections de valeurs d'attribut, donc SpringMVC est plus rapide que Struts2.


4. Mécanisme d'interception

Struts2 a son propre mécanisme d'interception. , SpringMVC utilise une méthode Aop indépendante.

Ce qui précède est la différence entre la couche de contrôle SpringMVC et Struts2. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www. php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal