idea 里面 @Autowire 会报警.而@Resource 却不会,这是为什么呢
时间: 2023-12-12 17:28:20 浏览: 26
在 Spring 中,@Autowired 和 @Resource 都是用来完成依赖注入的。但它们有些许不同:
1. @Autowired 是 Spring 提供的注解,而 @Resource 是 JavaEE 提供的注解。
2. @Autowired 默认按照 byType 的方式进行注入,如果有多个类型匹配,还可以通过 @Qualifier 指定具体的 bean 名称。而 @Resource 默认按照 byName 的方式进行注入,也可以通过 name 属性指定 bean 名称。
3. @Autowired 注解可以用在构造方法、setter 方法、字段上,而 @Resource 只能用在字段上。
因此,在使用 @Autowired 时,如果找不到合适的 bean,会报警告,而 @Resource 则不会。
相关问题
@autowire和@resource
@Autowire和@Resource都是Spring框架中用于依赖注入的注解。其中,@Autowire是Spring自带的注解,而@Resource则是JSR-250规范中定义的注解。
@Autowire注解可以自动实现对其他bean之间的依赖注入,它可以在被注入的bean参数上或setter方法上使用,但无法通过名称注入进行选择。它会按照类型进行注入,并会尝试按照名称进行匹配。如果有多个符合要求的bean,则会抛出异常。
@Resource注解可以通过名称选择要注入的bean,也可以通过类型注入。它默认按照名称进行注入,如果没有通过名称找到,则会按照类型进行注入。和@Autowire不同的是,如果有多个符合要求的bean,则会优先选择名称匹配的。
由于@Resource是JSR-250规范中定义的注解,在使用时需要添加javax.annotation.Resource类路径,而@Autowire则不需要。两者在功能上有所区别,但都是依赖注入的重要注解。
@Resource跟@Autowire的区别
`@Resource` 和 `@Autowire` 都是用来进行依赖注入的注解。
`@Autowire` 注解是 Spring Framework 提供的注解,它用来告诉 Spring 容器在进行 bean 注入时,使用哪个 bean。
`@Resource` 注解是 Java 提供的注解,它用来告诉 J2EE 容器在进行资源注入时,使用哪个资源。
两个注解的功能基本相同,但是有一些细微的差别。
- `@Autowire` 默认按类型来匹配对应的 bean,如果类型匹配不到,则按名称来匹配。而 `@Resource` 默认按名称来匹配对应的资源。
- `@Autowire` 可以使用在字段和方法上,而 `@Resource` 仅可以使用在字段上。
- `@Autowire` 可以指定是否是必须的,当找不到匹配的 bean 时是否抛出异常,而 `@Resource` 没有这个配置。
总结:在 Spring 中使用 @Autowire 是更佳的选择。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)