<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:
<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)。
我需要从web.xml中声明的dispatcherServlet访问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>
并配置了dispatcher-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配置文件中声明它,我应该能够共享bean。
非常感谢你。
答案 0 :(得分:2)
只有在引用bean位于同一个上下文文件中时才能使用local属性。
解决方案:
替换
<property name="catalogFacadeImpl"><ref local="catalogFacadeTarget"/></property>
与
<property name="catalogFacadeImpl" ref="catalogFacadeTarget" />