9
votes

Customizing Disternerservlet au printemps MVC une pratique courante?

Je suis nouveau au printemps MVC. Mais j'avais certaines expériences de travailler avec Struts 1.x. J'aimerais savoir s'il s'agit d'une pratique courante de personnaliser Disternersservlet tout en travaillant avec le Spring MVC, comme les personnes Personnalisent parfois Actionservlet ou DemandeProcesseur in Struts 1.x?

ou étendons un peu la question. Où sont les points d'entrée pour un programmeur MVC de printemps vétéran pour personnaliser le cadre MVC?

merci.


5 commentaires

S'il vous plaît pouvez-vous clarifier ce que vous entendez par personnalisation - voulez-vous dire spécialisé (comme je l'ai répondu) ou configurer (comme répondit Adatapost)?


En fait, je veux dire les deux, puisque j'ai besoin de toutes les informations sur la prolongation. De plus, je suis d'accord avec vous point. Extension desservir et être remplacée par le filtre ou le contrôleur. Cependant, de cette façon, le Spring MVC n'est pas en mesure d'offrir une interface standard de plig-in pour les développeurs enfichables. Dans les jambes de force, certains plug-ins sont effectués en extensionnant "demandeProcessor".


Je ne connais pas vraiment l'architecture du plug-in de Struts, mais je dirais que l'API de printemps MVC est jolie bare-Bones. C'est un peu un imho surmonté, car ce n'est que la partie contrôleur du motif MVC vous laissant de définir vos points de vue et votre modèle si nécessaire (généralement comme JSP et Pojos).


Ouais, mais ça servant presque (sinon toutes) toutes les exigences d'une manière tout à fait. C'est un beau cadre. J'aime beaucoup ça.


Oh oui, le printemps mvc est génial - il est parfaitement intégré avec le printemps et suffit juste pour vous faire la demande, après quoi vous pouvez faire ce que vous aimez. C'est de loin ma manière préférée de créer des applications Web, avec des normes Web XHTML / CSS et JQuery à l'avant.


5 Réponses :


1
votes

Pourquoi voudriez-vous spécialiser org.springframework.web.servlet.dispatchersservlet ?

Toute demande pré-traitement peut / doit être obtenue avec un Javax.Servlet.Filter et le reste est à la mise en œuvre de org.springframework.web.servlet.mvc.controller .

Vous pouvez également voir Adatapost la réponse, qui fait référence à la configuration du org.springframework.web.servlet.dispatchersservlet via le fichier web.xml.


3 commentaires

Je pose cette question pour que je puisse mieux comprendre ce cadre et voir à quoi cela peut servir. :)


Pourquoi voudriez-vous vous spécialiser quoi que ce soit? Parce que vous avez peut-être un besoin que quelqu'un d'autre n'a pas encore. Je ne comprends donc pas comment ces réponses peuvent avoir une uppote de toute façon. Si une classe a des méthodes «protégées», que Disternersservlet a, cela signifie certainement que le développeur estime qu'il peut se produire un besoin de le remplacer. Les développeurs de Grails ont déjà envahi Disternersservlet et pour eux, les filtres ne suffisaient pas à personnaliser certaines fonctionnalités.


Il y a toujours cette possibilité que vous puissiez se spécialiser, mais la question posée si elle était commune, que l'OMHO, ce n'est pas et il existe normalement de meilleurs moyens de réaliser ce dont vous avez besoin, bien que accordé, cela peut ne pas toujours être le cas.



5
votes

Certainement c'est une bonne pratique. Framework Spring - Frame-Web MVC

Résumé: Vous pouvez personnaliser le ressort Dispatcherservlet en ajoutant du contexte paramètres .... surtout utiles quand Vous avez beaucoup de fonctionnalités communes dans un contrôleur.


0 commentaires

5
votes

Disternersservlet , comme la plus grande partie de l'API de printemps, est très conçu pour l'extension. En effet, si vous en trouvez une partie de cela, ce n'est pas une position de sous-classement, déposer une question sur leur Jira et ils le répareront probablement pour vous (je l'ai fait à plusieurs reprises).

Ayant dit que la grande majorité des fonctionnalités peut être obtenue via la configuration de Disternersservlet plutôt que l'extension de celui-ci.


1 commentaires

Vous avez raison. Je ne peux même pas nommer une seule chose qui ne peut pas être réalisée par sa mise en œuvre actuelle. Merci pour votre conseil. Je vais déposer un problème si je trouve la nécessité.



1
votes

I, pour un, n'a jamais trouvé de raison d'étendre Disternersservlet.


0 commentaires

2
votes

Voici ma suggestion où je pense que l'extension du servlet Dispatcher serait «une» solution.

  1. Validation séparée, conversion du contrôleur (pour plusieurs bonnes raisons)
  2. Faites le contrôleur juste un délégateur de la couche de service.
  3. Construire / remplir complètement l'objet Domain / Demander "avant", il atteint le contrôleur.

1 commentaires

Si vous pensez que c'est un bon moyen, allez-y et mettez-le en œuvre. Même si j'ai posé cette question en premier lieu, je n'ai pas trouvé de cas dans lequel je dois prolonger Disternersservlet.