Spring 梳理 - @Autowired VS @Resource
Posted 手握太阳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 梳理 - @Autowired VS @Resource相关的知识,希望对你有一定的参考价值。
- Autowired
-
@Autowired顾名思义,就是自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。当然,getter看个人需求,如果私有属性需要对外提供的话,应当予以保留。
-
这里@Autowired注解的意思就是,当Spring发现@Autowired注解时,将自动在代码上下文中找到和其匹配(默认是类型匹配)的Bean,并自动注入到相应的地方去。
- @Autowired(required = false)
-
public class TestServiceImpl { // 下面两种@Autowired只要使用一种即可 @Autowired private UserDao userDao; // 用于字段上 @Autowired public void setUserDao(UserDao userDao) { // 用于属性的方法上 this.userDao = userDao; } }
- @Autowired接口注入
- 接口有两个实现类,Spring并不知道应当引用哪个实现类。这种情况通常解决办法:
- 使用@Qualifier注解,注意@Qualifier注解Car接口实现类的类名,不是bean的名称
-
@Autowired @Qualifier("BMW") private Car car;
-
- @Resource
- @Resource 与 @Autowired功能相似
- 默认通过name属性去匹配bean,找不到再按type去匹配
- 可以指定name或者type
-
@Resource(name = "xxx") private Yyy y1; @Resource(type = Yyy.class) private Yyy y2;
-
- @Resource VS @Autowired
- 、@Autowired是Spring的注解,@Resource是J2EE的注解
以上是关于Spring 梳理 - @Autowired VS @Resource的主要内容,如果未能解决你的问题,请参考以下文章
Spring/Spring学习 自动装配@Autowired 和 @Resource
整理:spring注解 @Autowired @Qualifier @Resource