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.
Sie können es einfach in Ihren Controller injizieren:
%Vor%Oder nehmen Sie HttpServletRequest als Parameter und holen Sie es von dort:
%Vor%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 .
Sie können eine Schnittstelle aus Spring namens org.springframework.web.context.ServletContextAware
Dann können Sie den servletContext
einen beliebigen Platz in der Klasse verwenden.
Tags und Links spring spring-mvc servlets autowired applicationcontext