问题描述
如上图所示,在加入了 @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 {
}
- UserController constructor controller Parameter requiredusercontroller constructor controller parameter constructor springboot controller parameter constructor dependency parameter injection parameter required request numbers statementerror sqlalchemy parameter required parameter required integer reguest controller required request missing usercontroller usercontroller控制器connonparam时候 constructor