Spring 中@Autowired 与@Resource ?
时间: 2024-01-30 20:54:35 浏览: 91
1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。.pdf
@Autowired和@Resource都是Spring中用于自动装配(注入)Bean的注解,但它们有些许不同。
@Autowired是根据类型进行自动装配,即它会在容器中查找类型与目标属性或构造函数参数相匹配的Bean,并将其注入。如果有多个与之匹配的Bean,则会抛出异常,需要通过@Qualifier指定具体的Bean名称。
@Resource是根据名称进行自动装配,即它会在容器中查找名称与目标属性或构造函数参数相匹配的Bean,并将其注入。如果没有指定名称,则默认使用属性或参数名作为Bean名称。如果有多个与之匹配的Bean,则会选择与目标属性或参数类型最为匹配的Bean。
另外,@Autowired可以用于构造函数、setter方法和普通字段上,而@Resource只能用于setter方法和普通字段上。因此,如果需要在构造函数中注入Bean,只能使用@Autowired。
总的来说,@Autowired更加灵活,但@Resource更加明确。
阅读全文