@Resource和@Autowired的区别
时间: 2023-10-08 10:05:59 浏览: 109
1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。.pdf
@Resource和@Autowired都是用来注入依赖对象的注解,但是它们有以下区别:
1. 来源不同:@Resource是JavaEE提供的注解,而@Autowired是Spring提供的注解。
2. 注入规则不同:@Resource默认按照名称(属性名)进行装配,如果找不到对应的名称,则尝试按照类型进行装配。而@Autowired默认按照类型进行装配,如果有多个相同类型的对象,再按照名称进行装配。
3. 需要的依赖对象类型不同:@Resource可以注入任何类型的依赖对象,包括基本类型。而@Autowired只能注入Spring容器中存在的Bean类型的依赖对象。
4. 可选属性不同:@Resource有两个可选属性name和type,可以指定注入依赖对象的名称或类型。而@Autowired有两个可选属性required和qualifier,required用于指定依赖对象是否必须存在,qualifier用于指定当存在多个相同类型的依赖对象时,使用哪一个。
总体来说,@Resource更加灵活,但是@Autowired更加方便。在使用的时候,需要根据具体的场景选择合适的注解。
阅读全文