![](/img/trans.png)
[英]All Spring Framework beans get duplicated, becase of doubled context (servlet+ContextLoaderListener)
[英]how to get beans from application context loaded by contextloaderlistener?
我是Spring / Spring Mvc的新手,這是我的問題。 在我的web應用程序中,除了spring-servlet.xml之外,我還有一個jdbc.xml,它定義了諸如數據源,dao之類的bean。在使用contextloaderlistener之前,我將jdbc.xml加載到了控制器的構造函數中,例如ApplicationContext context = new ClassPathXmlApplicationContext( “ jdbcbeans.xml”),然后從中獲取bean。 但是,由於我正在使用contextloaderlistener加載文件,因此如何獲得對上下文的引用? 我能夠使用這些@Autowired東西來設置一切,但是我只想知道有什么方法可以做到這一點?
您可以使用WebApplicationContextUtils 。
ApplicationContext context;
context = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
有關詳細信息,請參見此處 。
如果容器管理的bean使用ApplicationContextAware
接口,則可以執行以下操作來獲取Application Context的實例
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;
Application Context的實例將被自動裝配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.