Spring 中@Autowired 与@Resource ?
时间: 2024-01-30 19:57:00 浏览: 82
@Autowired和@Resource都是Spring中用于依赖注入的注解。
@Autowired是按照类型进行自动装配的,它会自动在Spring容器中查找匹配的Bean,并将其注入到需要的地方。如果有多个匹配的Bean,它会根据变量名或者属性名进行匹配。如果找不到匹配的Bean,会抛出异常。
@Resource则是按照名称进行自动装配的,它也会自动在Spring容器中查找匹配的Bean,并将其注入到需要的地方。但是它需要指定名称,如果名称没有指定,默认使用变量名或者属性名作为Bean的名称进行查找。如果找不到匹配的Bean,也会抛出异常。
总的来说,两者的作用都是相同的,都是用于自动注入Bean。但是@Autowired比@Resource更加灵活,因为它可以按照类型进行匹配,而@Resource只能按照名称进行匹配。
相关问题
Spring 中@Autowired 与@Resource ?
@Autowired和@Resource都是Spring中用于自动装配(注入)Bean的注解,但它们有些许不同。
@Autowired是根据类型进行自动装配,即它会在容器中查找类型与目标属性或构造函数参数相匹配的Bean,并将其注入。如果有多个与之匹配的Bean,则会抛出异常,需要通过@Qualifier指定具体的Bean名称。
@Resource是根据名称进行自动装配,即它会在容器中查找名称与目标属性或构造函数参数相匹配的Bean,并将其注入。如果没有指定名称,则默认使用属性或参数名作为Bean名称。如果有多个与之匹配的Bean,则会选择与目标属性或参数类型最为匹配的Bean。
另外,@Autowired可以用于构造函数、setter方法和普通字段上,而@Resource只能用于setter方法和普通字段上。因此,如果需要在构造函数中注入Bean,只能使用@Autowired。
总的来说,@Autowired更加灵活,但@Resource更加明确。
请简述Spring注解中@Autowired和@Resource区别
@Autowired和@Resource都是Spring中用于依赖注入的注解,但是它们有一些区别:
1. 自动装配实现方式不同:@Autowired是按照类型进行自动装配的,而@Resource是按照名称进行自动装配的。
2. @Autowired默认按照类型进行匹配,如果找到多个匹配的bean,则会报错。而@Resource默认按照名称进行匹配,如果找不到名称匹配的bean,则会报错。
3. @Autowired可以用在构造器、属性、方法上,而@Resource只能用在属性上。
4. @Autowired是Spring提供的注解,而@Resource是JavaEE提供的注解,因此@Resource的可移植性更好。
总的来说,使用@Autowired更为灵活,但是@Resource更为规范和可移植。
阅读全文