当前位置: 首页 > 知识库问答 >
问题:

考虑在配置中定义“Mapper”类型的bean

毕魁
2023-03-14

我正在做SpringBoot项目,并遵循一些测试SpringBoot的说明。

当我尝试将mysql DB与项目连接时,服务找不到映射器。

我不知道为什么它找不到映射器...

@Service
public class TestService {
    
    @Autowired
    TestMapper mapper;
    
    public List<TestVo> selectTest(){
        return mapper.selectTest();
    }
}

这是服务代码和

@Repository
@Mapper
public interface TestMapper {
    List<TestVo> selectTest();
}

这是映射程序代码

下面的错误是

Field mapper in com.steve.firstBoot.test.service.TestService required a bean of type 'com.steve.firstBoot.test.mapper.TestMapper' that could not be found.

The injection point has the following annotations:
    - @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean of type 'com.steve.firstBoot.test.mapper.TestMapper' in your configuration.

我将发布我的包裹设置的图片。。。

共有2个答案

有耀
2023-03-14
  1. 创建一个实现您的接口的类并使用bean原型注释之一对其进行注释,即@Component、@Service、@Repository
  2. 从您的界面中删除@Repository注释
刘兴朝
2023-03-14

Spring无法为接口创建对象。确保每个需要自动装配的接口都应该有一个实现类。

在此之后,人们通常遵循两种方法。

1.根据功能将接口标记为@Repository/@Service,并将其所有实现类标记为@Component

2.可以直接用@Repository/@Service标记实现类,甚至不用标记接口。

任何一个都可以。

 类似资料: