如何在spring Web应用程序的运行时在spring-web-mvc中获取WebApplicationContext和DispatcherServlet的实例

Ran*_*ain 6 java spring-mvc

我想在控制器类下的函数中获取WebApplicationContext和DispatcherServlet实例的实例.

Deb*_*kia 3

WebApplicationContext从 Spring 2.5 开始,您可以获得使用注释的参考@Autowired

@Autowired
WebApplicationContext applicationContext;
Run Code Online (Sandbox Code Playgroud)

ApplicationContext您还可以通过实现ApplicationContextAware接口来获取参考:

public class YourController implements ApplicationContextAware {
ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
...
}
Run Code Online (Sandbox Code Playgroud)

但我认为没有办法获取对DispatcherServlet应用程序中存在的实例或任何 Servlet 实例的引用。之前有一种使用ServletContext.getServlet()获取它的方法,但现在已弃用。