2010-06-10 56 views
1

好吧,我現在有另一個問題。我在applicationContext.xml中成功加載了一堆豆子,從web.xml中加載:從contextListener共享bean - 調度程序servlet

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>applicationContext.xml</param-value> 
</context-param> 

<listener> 
    <listener-class>com.bamboo.common.factory.Log4JContextListener</listener-class> 
</listener> 

這裏有是我想分享在applicationContext.xml中定義的豆:

<bean id="catalogFacadeTarget" class="com.bamboo.catW3.business.impl.CatalogFacadeImpl"> 
    <property name="categoryDAO"><ref local="categoryDAOTarget"/></property> 
    <property name="containerDAO"><ref local="containerDAOTarget"/></property> 
    <property name="productDAO"><ref local="productDAOTarget"/></property> 
    <property name="productOptionDAO"><ref local="productOptionDAOTarget"/></property> 
    <property name="productStatusDAO"><ref local="productStatusDAOTarget"/></property> 
    <property name="userDAO"><ref local="userDAOTarget"/></property> 
</bean> 

它加載用Hibernet初始化的其他bean(DAO)。

我需要從DispatcherServlet的,在web.xml中聲明存取權限catalogFacadeTarget:

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
</servlet-mapping> 

和配置調度-servlet.xml中是這樣的:

<bean name="welcome" 
    class="com.bamboo.catW3.business.impl.Welcome"> 
    <property name="successView"> 
     <value>welcome</value> 
    </property> 
    <property name="catalogFacadeImpl"><ref local="catalogFacadeTarget"/></property> 
</bean> 

有!在名爲catalogFacadeImpl的屬性中,我需要catalogFacadeTarget bean!

如果您需要整個applicationContext.xml,web.xml和dispatcher-servlet.xml請讓我知道。

從我讀到的,我應該能夠共享豆,如果我在contextConfigLocation配置文件中聲明它們。

非常感謝您提前。

回答

2

只有當引用bean位於同一個上下文文件中時,才能使用本地屬性。

A液:

替換

<property name="catalogFacadeImpl"><ref local="catalogFacadeTarget"/></property> 

<property name="catalogFacadeImpl" ref="catalogFacadeTarget" />