最近刚接到一个程序要修改,它的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;
吗?
3 回答
素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
通过注解@Autowired注入,属于按类型注入(byType),所以你的注入不用指定名称,只有当接口有多个实现类时,容器查找到多个匹配的bean时才需要指定名称,使用@Qualifier,像下面这样:
@Autowired
@Qualifier("masterDataSource")
private DataSource dataSource;
添加回答
举报
0/150
提交
取消
