spring学习笔记(4)——@Autowired,@Resource,@Inject

建议采用@Autowired

  • @Resource 注解要求提供一个bean名称的属性,若该属性为空,则自动采用标注处的变量或方法名作为Bean的名称

  • @Inject 和@Autowired注解一样,都是按类型匹配注入,但@Inject没有require属性。

以下为@Autowired详解:
1.@Autowired 标注在属性上, 可以标注在setter方法上,
但默认情况下用了@Autowired标注的bean(java类),要求该bean要放到spring容器中,否则报错。
要是你真想不报错或忽略它的话,必须在用了@Autowired标注的bean(java类),加require=false

2.要是IOC容器中存在多个类型相同的Bean时,通过类型自动匹配装配将无法工作。解决办法:

  1. (1)@Autowired +@Qualifier(“bean别名”)一起使用 (常用)
  2. (2)有两个@Repository或@Service的实现类都是继承同一个Bean接口,但其中后面定义了名字(定义名字会自动把类型的大写开头变先写匹配上的) @Repository(“userRepository”) 或@Service(“userService”)
    后面使用@Autowired private UserRepository userRepository 会自动根据名称匹配上。

3.@Autowired 注解数组,集合,map 类型是,会把所有符合类型的都自动装配进去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值