我记得我最开始根据网上的视频来学习spring的时候,老师的注解都是@Autowired,后面学着学着就变成了@Resource,那么这两个注解到底有什么区别呢?
- 提供方不同
@Autowired是spring提供的注解
@Resource
- 注入方式不同
@Autowired只按照byType方式注入
@Resource默认按照byName方式注入,也可以根据byType方式注入
- 属性不同
@Autowired按照类型配置对象,要求依赖对象必须存在。如果允许为null,则将require属性设置为false。
@Resource中有两个重要的属性name和type,默认按照name装配,找不到对象就会按照type进行装配。如果设置了name,就只能通过name进行装配。
推荐使用@Resource