2012-01-11 4 views
-1

J'écris l'application Spring 3.1.0 MVC. Le problème est: je veux mettre quelques objets dans un objet singleton (courant HttpServletRequest et HttpSevletResponse) pour les utiliser dans d'autres objets (contrôleurs de ressort). Mais ne pouvait pas le faire. J'ai essayé d'étendre DispatcherServlet, en remplaçant à la fois doService et doDispatch. A également essayé de mettre en œuvre propre HandlerInterceptor. Pas de résultat.Initialiser Singletons dans Spring Framework 3 MVC

Où puis-je initialiser mes objets singleton? Et où est le point d'entrée et le point de destruction de Spring Frameworks (c'est-à-dire comme les méthodes init() et destroy() ou le cycle de vie)?

+0

Hmm, beaucoup de questions. Je pense que vous devez lire les docs. – skaffman

Répondre

1

Le courant HttpServletRequest et HttpServletResponse sont disponibles comme arguments de la méthode à vos méthodes de commande:

@RequestMapping("/foo") 
public String foo(HttpServletRequest request) { 

} 

Je crois que vous pouvez également les @Inject dans votre contrôleur. Un proxy sera injecté, et chaque fois que vous vous référez à eux, les actuels seront utilisés. (Je ne suis pas sûr à 100% de celui-ci)

Une troisième option est d'utiliser le conteneur RequestContextHolder, et d'obtenir tout à partir de là.

+0

Oui. Je connais ces façons. Merci. Mais la chose est que je suis en train de mettre en œuvre un modèle de façade. C'est-à-dire, pour accéder à toutes mes données, auxquelles je ne peux accéder qu'à partir de Spring framework, placez-y un objet (par exemple, un message de printemps, obtenez des locales, etc.). C'est pourquoi je veux les mettre en singleton. Savez-vous comment réaliser l'initialisation du singleton? Les contrôleurs – J3DI

+0

sont également des singletons. Je ne comprends pas ce que tu veux accomplir exactement. – Bozho

+0

Initialise mon singleton, donc je peux y accéder dans les contrôleurs. – J3DI