java - 为什么xml文件中配置id="masterDataSource",代码中却是DataSource dataSource;

查看:55
本文介绍了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=&quot;masterDataSource&quot;,代码中却是DataSource dataSource;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆