我是Spring / Spring Mvc的新手,这是我的问题。在我的webapp中,除了spring-servlet.xml之外,我还有一个jdbc.xml,用于定义bean,如datasource,dao ...在使用contextloaderlistener之前,我将我的jdbc.xml加载到Controller的构造函数中,就像这个ApplicationContext上下文一样=新的ClassPathXmlApplicationContext(" jdbcbeans.xml")然后从中获取bean。但由于我使用contextloaderlistener加载文件,我如何获得对上下文的引用?我能够使用@Autowired的东西设置所有东西,但我只是想知道有没有办法做到这一点?
答案 0 :(得分:2)
您可以使用WebApplicationContextUtils。
ApplicationContext context;
context = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
有关详细信息,请参阅here。
答案 1 :(得分:1)
您可以执行以下操作来获取Application Context的实例
在容器管理bean的情况下使用ApplicationContextAware
接口
public class MyBean implements ApplicationContextAware {
private static ApplicationContext context;
public void setApplicationContext(ApplicationContext acontext) throws BeansException {
context = context;
}
public static ApplicationContext getApplicationContext() {
return context;
}
}
或者你可以写下面的
@Autowired
private ApplicationContext Context;
应用程序上下文的实例将自动装配。