开发者学堂课程【Java 面试疑难点串讲 3:开发工具及框架:Resource 与 Autowired 的区别】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/26/detail/557
Resource 与 Autowired 的区别
在使用 Spring 的自动的 Annotation 注解的时候经常会见到有两类的注解: @Resource (个人常用)、@Autowired,
如果你要想去理解这两个的区别,最好的做法是先认真学完了在 Spring 依赖注入的时候讲解过的自动的配置操作,在 Spring 里面自动的配置模式有两类:按照类型、按照名称。
l @Autowired:
则表示按照类型进行自动注入,缺点:如果类型相同,则无法注入;
l @Resource:
具备按照类型自动注入的特点,而后如果现在类型相同,则可以设置一个名称也就是说你使用 @Component、@Service 等注解设置自动扫描的时候可以设置一个名字,而这个名字就可以在 @Resource 中使用了。
SpringBoot 里面,因为其自动支持一些环境配置,所以如果使用的是 Autowired 那么如果配置了多个相同类型 的 Bean 的话,那么将无法进行准确的注入操作。那么必须使用 @Resource 完成。