​resource(Autowire、Resource区别?最后一点你考虑过么?)

2024-03-02 14:04 来源:蝶族生活网 点击:

resource(Autowire、Resource区别?最后一点你考虑过么?)

来源及默认装配方式区别:

(spring的注解)Autowire以type,只有required(是否不能为空),如果要指定名字,需要借助@Qualifer

(jdk的注解)Resource以name,可以指定name、type,如果没有指定,先name,后type,如果指定,只能按指定的加载,加载不到报错

以上两种,如果没有指定,会以属性名为准加载;

注入的是接口,接口有多个实现类时,必须指定注入的哪一个实现类

作用范围:

Autowire 构造器、setter方法、字段

Resource setter方法、字段

扩展问题:

1、如果一个属性,注解写了这俩,会以哪个为准?能不能调整顺序?

答:默认Autowire先,Resource后,可以使用排序器排序

2、Autowire只能以type类型加载么?

答:不是。

a、spring发现多个类型可以与之匹配(比如一个接口多个实现),spring会自动切换为按照name名称装配。(这里也是为什么没指定装配类型or名称,但是依然没有报错的原因)

b、通过@Qualifier("aa")注解指定名称