(005)spring注解@Resource和@Autowire的区别
Posted 明月之诗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(005)spring注解@Resource和@Autowire的区别相关的知识,希望对你有一定的参考价值。
Autowire:
1、Autowire是spring的注解,默认先按照类型装配,如果没有找到这个类型的bean或者找到多个这个类型的bean但是多个bean的名字没有与属性名相同的,会报错。
2、如果找到多个这个类型的bean但是多个bean的名字中有与属性名相同的,则按照该bean的名字装配,不会报错。
3、如果使找不到要注入的bean时也不会报错,可设置required为false。
4、如果使其按照名字装配,可以使用@Qualifier注解,如@Qualifier("userDao")表示,使用名字为userDao的bean
Resource:
1、Resource是j2ee的注解,默认先按照名字进行装配,如果没有找到这个类型的bean或者找到多个这个类型的bean但是多个bean的名字没有与属性名相同的,会报错。
2、如果找到多个这个类型的bean但是多个bean的名字中有与属性名相同的,则按照该bean的名字装配,不会报错。
3、Resource可以指定 bean的名字,如@Resource(name="userDao")表示,取bean的名字为userDao的bean装配
总结:
1、Autowire是spring的注解,默认先按照类型装配,Resource是j2ee的注解,默认先按照名字进行装配
2、存在多个bean时,如果属性名不与bean的名字相同,必须指定使用哪个bean,否则会报错
3、Resource除了使用Qualifier注解,还可以它的name属性来指定使用哪个bean
以上是关于(005)spring注解@Resource和@Autowire的区别的主要内容,如果未能解决你的问题,请参考以下文章
Spring5源码分析(005)——IoC篇之统一资源加载Resource和ResourceLoader
Spring中@Autowired注解@Resource注解的区别
Spring5:@Autowired注解@Resource注解和@Service注解