Maison  >  Article  >  Java  >  Devriez-vous abandonner « ContextLoaderListener » dans les applications Web Spring ?

Devriez-vous abandonner « ContextLoaderListener » dans les applications Web Spring ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-05 08:54:02230parcourir

Should You Ditch `ContextLoaderListener` in Spring Web Applications?

ContextLoaderListener revisité

L'application Web Spring standard utilise à la fois un ContextLoaderListener et un DispatcherServlet. Alors que le premier est conçu pour charger des configurations non liées au Web et que le second gère uniquement les configurations liées au Web, la question se pose : pourquoi ne pas utiliser le DispatcherServlet pour charger toutes les configurations afin d'éviter la complexité des contextes multiples ?

Raisons des contextes multiples

Historiquement, l'utilisation des deux contextes était encouragée pour séparer les préoccupations liées au Web de celles qui ne le sont pas. Cette pratique offrait des avantages lors du partage de services entre plusieurs DispatcherServlets ou de l'accès aux services Spring-wired à partir de servlets existants. Cependant, dans les cas où ces conditions ne s'appliquent pas, comme suggéré dans la question, il peut n'y avoir aucune raison impérieuse de maintenir le contexte au niveau de l'application Web.

Justification de la suppression

La décision de supprimer ContextLoaderListener dépend en fin de compte des exigences spécifiques de l'application. Cependant, si aucun des scénarios suivants ne s'applique :

  • La nécessité de partager des services entre DispatcherServlets
  • Le recours à des servlets hérités qui nécessitent des services câblés Spring
  • Utilisation de des filtres qui s'intègrent au contexte au niveau de l'application Web

Ensuite, supprimer ContextLoaderListener et s'appuyer uniquement sur DispatcherServlet peut simplifier l'architecture de l'application et potentiellement résoudre les problèmes liés à la gestion des événements dans tous les contextes.

Attention

Lorsque vous envisagez la suppression du contexte au niveau de l'application Web, évaluez soigneusement l'impact sur les tâches en arrière-plan, telles que les tâches planifiées ou les connexions JMS. Si l'implémentation ne dispose pas d'un configuration, ces tâches ne seront lancées qu'au premier accès au servlet, ce qui pourrait affecter le traitement en temps opportun.

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!

Déclaration:
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