问题描述
如上图所示,在加入了 @MapperScan
注解之后就出现了这个问题。
file:[src/java/config/MybatisConfig.java]
@Configuration
@MapperScan("com.example.iocdi")
public class MybatisConfig {
}
因为这个 @MapperScan
注解扫描了 com.example.iocdi
下面所有的包,
而 UserServiceImpl 的接口是 UserService,它们的类型一致,导致注入的 bean 类型重复,不知道哪一个 bean 是对的。
并且,我在 Controller 层中注入的方式是以接口类型作为变量注入的实现类:
file:[src/java/controller/UserController.java]
@RequiredArgsConstructor
@RestController("/user")
public class UserController {
private final UserService service;
@GetMapping("/get/all")
public List<User> getUserAll() {
return service.queryAll();
}
}
解决方式
只需要缩小 @MapperScan
扫描的范围即可,让它只扫描 mapper 包下的 bean。
file:[src/java/config/MybatisConfig.java]
@Configuration
del:[@MapperScan("com.example.iocdi")]:del
add:[@MapperScan("com.example.iocdi.mapper")]:add
public class MybatisConfig {
}
标签:java,iocdi,Spring,MapperScan,bean,com,example
From: https://www.cnblogs.com/Himmelbleu/p/17695867.html