为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

GCT1015 2019-03-01 10:37:07
最近刚接到一个程序要修改,它的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;
查看完整回答
反对 回复 2019-03-01
?
红颜莎娜

TA贡献1842条经验 获得超13个赞

spring 支持类型的自动注入,只要这个类型的bean只有一个就可以。

查看完整回答
反对 回复 2019-03-01
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

,我猜,应该是有Datasource这个接口吧。masterDataSource是实现类或继承接口

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 989 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号