@autowired与@resource区别
时间: 2023-04-16 09:04:56 浏览: 83
`@Autowired` 和 `@Resource` 都是用来在类中注入依赖的注解。主要区别在于:
- `@Autowired` 是 Spring 框架自带的注解,它可以用在字段、构造器、方法上。当使用在字段上时,默认按类型装配;当使用在构造器上时,按照参数顺序装配。
- `@Resource` 是 Java 自带的注解,它可以用在字段、方法上。当使用在字段上时,默认按照名称装配;当使用在方法上时,按照参数名称装配。
总结来说:@Autowired 是 Spring 框架的注解,它默认按类型装配;而 @Resource 是 Java 标准注解,它默认按照名称装配。
相关问题
@Autowired与@Resource区别
@Autowired与@Resource都是Spring框架中的依赖注入注解,它们的作用都是自动装配Bean,但是它们有以下几个不同点:
1.来源不同
@Autowired是由Spring提供的注解,而@Resource是由J2EE提供的注解。
2.注入方式不同
@Autowired是按照类型进行自动装配,如果有多个类型相同的Bean,则需要通过@Qualifier指定具体的Bean。
@Resource是按照名称进行自动装配,如果没有指定名称,则默认按照属性名进行匹配。
3.可选性不同
@Autowired默认情况下要求依赖对象必须存在,否则会报错。但是可以通过将@Autowired的required属性设置为false来实现非必须注入。
@Resource默认情况下要求依赖对象必须存在,否则会报错。但是不支持required属性,因此无法进行非必须注入。
@Autowired与 @Resource 的区别
@Autowired和@Resource都是用来进行依赖注入的注解,但是它们有以下区别:
1. 来源不同:@Autowired是Spring自带的注解,而@Resource是Java EE提供的注解。
2. 注入方式不同:@Autowired是按照类型注入的,它会根据类型去找对应的bean;而@Resource是按照名称注入的,它会根据名称去找对应的bean。
3. 是否需要指定名称:@Autowired不需要指定名称,默认按照类型注入;而@Resource需要指定名称,如果不指定名称,则默认按照属性名作为名称去查找对应的bean。
4. 是否支持多个实现类:@Autowired支持多个实现类,但需要结合@Qualifier注解一起使用;而@Resource不支持多个实现类。
总之,@Autowired和@Resource都是用来进行依赖注入的,只是在使用上有所不同。因此,我们可以根据实际情况选择使用哪种注解。