使用注解@Resource,报错 No qualifying bean of type 'com.bsoft.lis.lab.blood.api.mapstruct.LabBloodMapper' available
时间: 2024-09-24 18:28:16 浏览: 34
当你在Spring框架中尝试使用`@Resource`注解注入`LabBloodMapper`类型的bean,但是却收到找不到符合条件的bean的错误,这通常意味着Spring容器无法找到符合`com.bsoft.lis.lab.blood.api.mapstruct.LabBloodMapper`这个接口或实现了该接口的类。这可能是以下几个原因造成的:
1. **缺少配置**:确保你在Spring配置文件(XML或@Configuration类)中已经定义了`LabBloodMapper`对应的Bean,并且别名、扫描包或其他属性设置正确。
```xml
<bean id="labBloodMapper" class="com.bsoft.lis.lab.blood.api.mapstruct.LabBloodMapperImpl"/>
```
或在Java配置中:
```java
@Bean
public LabBloodMapper labBloodMapper() {
return new LabBloodMapperImpl();
}
```
2. **包扫描路径**:检查是否将包含`LabBloodMapper`的包路径添加到了Spring的组件扫描范围(如@ComponentScan)内。
3. **名称冲突**:如果存在同名但功能不同的bean,可以检查是否存在其他bean覆盖了你需要的那个。
4. **MapStruct依赖**:确认MapStruct相关依赖是否正确引入并配置,特别是如果你是通过MapStruct自动装配bean的话。
5. **懒加载**:`@Resource`默认是Eager Init(即初始化很快),若想延迟初始化,可以用`@Lazy`注解,但记得此时手动创建实例。
检查上述问题后,如果仍然遇到问题,可以在Spring配置文件中增加`debug`模式来查看详细错误信息,或者在控制台打印日志寻找更多线索。
阅读全文