So rufen Sie Spring WebContext in der Klasse @ @ controller ab

8

In Spring MVC mit Annotation markieren wir jedes POJO mit @Controller. In diesem Controller können wir WebApplicationContext mit autowired Eigenschaft abrufen.

%Vor%

Aber bei diesem Ansatz haben wir keinen servletContext bei uns. Gibt es also einen Weg, wie wir WebApplicationContext noch früher verwenden können? d. h.

%Vor%

Wie erhalten wir ServletContext hier?

Ich sehe keinen Zwang, den alten Weg zu benutzen; Diese Frage ist nur aus Neugierde, um die Flexibilität des Frühlings zu überprüfen. Es kann auch eine Interviewfrage sein.

    
Kaushik Lele 03.11.2012, 06:17
quelle

5 Antworten

16

Sie können es einfach in Ihren Controller injizieren:

%Vor%

Oder nehmen Sie HttpServletRequest als Parameter und holen Sie es von dort:

%Vor%     
Biju Kunjummen 03.11.2012, 16:11
quelle
2

Der folgende Ansatz ist korrekt:

%Vor%

Andernfalls können Sie den ServletContext nicht automatisch verkabeln, sondern ServletContextAware implementieren. Spring wird dies bemerken, wenn es in einem Webanwendungskontext ausgeführt wird und den ServletContext injiziert. Lesen Sie dies .

    
Jeevan Patil 04.11.2012 06:03
quelle
2

Sie können es auch inline machen:

%Vor%     
Guy L 20.07.2015 12:01
quelle
2

Sie können eine Schnittstelle aus Spring namens org.springframework.web.context.ServletContextAware

implementieren %Vor%

Dann können Sie den servletContext einen beliebigen Platz in der Klasse verwenden.

    
sendon1982 02.09.2015 00:25
quelle
1

Durch Zugriff auf die Sitzung können Sie den Servlet-Kontext, Beispielcode, abrufen:

%Vor%

Sie können die HttpSession auch von der HttpServletRequest abrufen.

    
ElderMael 03.11.2012 13:56
quelle