Java 从contextListener共享bean——DispatcherServlet

Java 从contextListener共享bean——DispatcherServlet,java,spring,Java,Spring,好的,我现在还有一个问题。我在applicationContext.xml中成功加载了一堆bean,这些bean从web.xml加载: <context-param> <param-name>contextConfigLocation</param-name> <param-value>applicationContext.xml</param-value> </context-param> <lis

好的,我现在还有一个问题。我在applicationContext.xml中成功加载了一堆bean,这些bean从web.xml加载:

<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
com.bambol.common.factory.Log4JContextListener
下面是在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)

我需要从dispatcherServlet访问catalogFacadeTarget,在web.xml中声明:

<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>

调度员
org.springframework.web.servlet.DispatcherServlet
1.
调度员
*.htm
并按如下方式配置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的属性中,我需要CatalogFacadeTargetbean

如果您需要整个applicationContext.xml、web.xml和dispatcher-servlet.xml,请告诉我

从我读到的内容来看,如果我在contextConfigLocation配置文件中声明bean,我应该能够共享它们


非常感谢。只有在引用bean位于同一上下文文件中时,才能使用local属性

解决方案:

替换

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


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