最近刚接到一个程序要修改,它的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
,像下面这样: