首页 > 解决方案 > 带有xml配置的spring bean类中的DAO null

问题描述

我正在尝试将uploadDao 注入bean DemoHandler (下面的XML)。但正如预期的那样,它是空的。问题是如何正确注入 DAO。

现在,有一个从 WebUploadServiceImpl 到 DemoHandler 的方法调用,我可以再添加 1 个参数并从 uploadDao 发送我需要的值,但是随后该方法被多个 java 类重用,所有这些方法都需要重构并且新参数与其他类无关。

有没有办法让uploadDao注入DemoHandler?任何帮助深表感谢。谢谢

春天 XML:

<bean id="wuService" class="com.abcd.service.WebUploadServiceImpl">
        <property name="uploadDao" ref="uploadDao" />
        <property name="webHandlers">
            <set>
                <bean class="com.abcd.service.handler.DemoHandler" />
            </set>
        </property>
</bean>

代码:

public class DemoHandler {

private UploadDao uploadDao;

   public List handleM(...) {
        ...
        Period period = uploadDao.anyMethod(..); --- Null here
   }    
}

标签: javaxmlspring

解决方案


如果DemoHandler需要设置一个道,你为什么不做这样的事情......

<bean id="uploadDao" class="whatever.dao.UploadDaoImpl"/>

<bean id="wuService" class="com.abcd.service.WebUploadServiceImpl">
        <property name="uploadDao" ref="uploadDao" />
        <property name="webHandlers">
            <set>
                <bean class="com.abcd.service.handler.DemoHandler">
                    <property name="uploadDao" ref="uploadDao" />
                </bean>
            </set>
        </property>
</bean>

你只需要复制已经在WebUploadServiceImpl. 您没有显示该代码,我不知道您是否使用@Autowiredset 方法或任何其他可能性。


推荐阅读