@Autowired报错误Could not autowire. No beans of 'CertfInfoMapper' type found.,改成@Resource就不报错了
时间: 2024-02-29 11:53:23 浏览: 189
`@Autowired` 和 `@Resource` 都是 Spring 中用于注入 Bean 的注解,但两者的实现方式略有不同。
其中,`@Autowired` 是 Spring 自带的注解,它可以自动装配 Bean,但是需要注意的是,如果存在多个相同类型的 Bean,它会按照一定的规则进行选择。如果规则不明确或者无法选择到正确的 Bean,就会报错 `No beans of 'CertfInfoMapper' type found`。
而 `@Resource` 是 Java EE 标准中定义的注解,它也可以注入 Bean,但是相对于 `@Autowired`,它更加明确、精准。`@Resource` 注解可以通过指定 Bean 的名称或类型来确定注入哪个 Bean,从而避免了多个相同类型 Bean 导致的冲突问题。
因此,如果你在使用 `@Autowired` 注解时出现了 `No beans of 'CertfInfoMapper' type found` 错误,可以尝试改成 `@Resource` 注解,并指定要注入的 Bean 的名称或类型。例如:
```java
@Resource(name = "certfInfoMapper")
private CertfInfoMapper certfInfoMapper;
```
或者:
```java
@Resource
private CertfInfoMapper certfInfoMapper;
```
如果你使用 `@Resource` 注解仍然无法解决问题,可以检查一下你的代码中是否存在重复的 Bean 定义,或者提供更多的代码和错误信息,以便进行更深入的分析。
阅读全文