- 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的注解