@Resource与@Auto
时间: 2023-09-21 12:10:18 浏览: 154
1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。.pdf
@Autowired和@Resource都是Java中用于注入依赖的注解。它们的作用很相似,但是有一些区别。
@Autowired是Spring框架提供的注解,而@Resource是Java EE规范提供的注解。因此,使用@Autowired注解需要引入Spring相关的依赖,而@Resource注解则是Java EE的一部分,不需要引入额外的依赖。
@Autowired默认按照类型进行注入,如果存在多个匹配的Bean,则会抛出异常。如果需要按照名称进行注入,可以使用@Qualifier注解指定名称。
@Resource默认按照名称进行注入,如果找不到名称匹配的Bean,则会按照类型进行注入。如果存在多个匹配的Bean,则会选择匹配度最高的Bean进行注入。如果需要按照类型进行注入,可以使用@Resource注解的type属性指定类型。
另外,@Autowired注解还有一个required属性,默认为true,表示必须要找到匹配的Bean进行注入,否则会抛出异常。而@Resource注解则没有这个属性,如果找不到匹配的Bean,则会将对应的字段或者方法设置为null。
总的来说,@Autowired注解是Spring框架提供的,更加灵活,可以用于注入Spring容器中的Bean,也可以用于注入Java EE容器中的Bean;而@Resource注解是Java EE规范提供的,更加标准化,只能用于注入Java EE容器中的Bean。
阅读全文