java - 为什么xml文件中配置id="masterDataSource",代码中却是DataSource dataSource;
本文介绍了java - 为什么xml文件中配置id="masterDataSource",代码中却是DataSource dataSource;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
最近刚接到一个程序要修改,它的jdbc.properties配置成
master.database.driver=oracle.jdbc.driver.OracleDriver...
然后spring-datasource配置成
<bean id="masterDataSource"
...<property name="driverClassName" value="${master.database.driver}"/>...
mybaits配置成
<bean id="sqlSessionFactory"....
<property name="dataSource" ref="masterDataSource"/>
...
这些都没有疑问,问题是代码中直接操作数据库的部分dao用的却是
@Autowired
private DataSource dataSource;
且正常.
不是应该
@Autowired
private DataSource masterDataSource;
吗?
解决方案
通过注解@Autowired
注入,属于按类型注入(byType),所以你的注入不用指定名称,只有当接口有多个实现类时,容器查找到多个匹配的bean时才需要指定名称,使用@Qualifier
,像下面这样:
@Autowired
@Qualifier("masterDataSource")
private DataSource dataSource;
这篇关于java - 为什么xml文件中配置id="masterDataSource",代码中却是DataSource dataSource;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文