java - 带有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
}
}
解决方案
如果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
. 您没有显示该代码,我不知道您是否使用@Autowired
set 方法或任何其他可能性。
推荐阅读
- python - tkinter 在不同的显示器上调整 GUI 的大小
- javascript - 发生焦点时如何在反应导航中重新渲染组件?
- firebase - 在 Flutter 中从 Firebase 中检索数组
- java - JOptionPane 显示消息对话框无法在焦点侦听器中关闭
- php - laravel查询bewteen
- javascript - 带有表情符号代码的文本中的javascript错误意外标识符
- java - Intellij 忽略 .gitignore 文件 - 灰色图标、无符号、斜线圆圈、斜线符号
- c++ - 如何实现基于其他选定选项限制选项的列表功能?
- sql - 从两个不同的表中找到 sum() 并根据条件加入它们?
- php - 如何检索错误的字符集编码字符串?