@Autowired

1.结论:@Autowired 默认是按照byType进行注入的,如果发现找到多个bean,则,又按照byName方式比对,如果还有多个,则报出异常。

2.byType是什么?byName是什么?

2.1.@Autowired修饰变量

@Autowired
DataSource ds;

byType是DataSource(变量类型)

byName是ds(变量名)

2.2.@Bean修饰变量

@Bean
public DataSource dataSource1() { 
    return new DruidDataSource(); 
}
@Bean
public DataSource dataSource2(){
    return new DruidDataSource(); 
}

byType是DataSource(方法返回值)

byName是dataSource1与dataSource2(方法名)

2.3.xml创建bean(之后再写)

3.解决冲突

3.1.byType相同,使用@Primary注解(优先级byType>@Primary>byName)

@Bean
@Primary
public DataSource dataSource1() { 
    return new DruidDataSource(); 
}
@Bean
public DataSource dataSource2(){
    return new DruidDataSource(); 
}

3.2.修改byName为指定名称(不修改变量名),@Qualifier("xxx")

@Autowired
@Qualifier("dataSource1")
DataSource ds;

 另注:@Resource(这个注解属于J2EE的)的标签,默认是按照byName方式注入的

转载于:https://www.cnblogs.com/SmilingEye/p/11178812.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值