2012-03-02 73 views
5

我有一個Spring MVC的項目設置像這樣之間豆類:春天看不到的servlet上下文和contextConfigLocation的豆

<servlet> 
<servlet-name>appServlet</servlet-name> 
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
<init-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/spring-contexts/servlet-context.xml</param-value> 
</init-param> 
<load-on-startup>1</load-on-startup> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/spring-contexts/configuration-context.xml</param-value> 
</context-param> 

,如果我在做配置的bean出現-context.xml並在servlet-context.xml中引用一個bean時,它找不到它。這些被創建爲兩個不同的環境嗎?爲什麼會發生這種情況/一般這樣工作?

回答

6

是的,有兩個上下文相互堆疊(父和子上下文)。

DispatcherServlet中的Bean(servlet-context.xml)可以從ContextLoaderListener(configuration-context.xml)訪問bean,但不能以其他方式訪問Bean。

所以把基本的東西放在configuration-context.xml和網絡相關的一次到servlet-context.xml

@see也是這個堆棧溢出問題:ContextLoaderListener or not?

+0

請你告訴我,爲什麼我不能達到,從我的網絡服務程序,在規定的applicationContext的txManager? – vault 2014-11-08 16:59:38