场景:一个bean是另一个bean的子类,在进行注入时报错
报错内容
Field userService in com.demo.controller.UserController required a single bean, but 2 were found:
- userServiceImpl: defined in file [D:\Work\idea_workspace\demo\target\classes\com\demo\service\impl\UserServiceImpl.class]
- userServiceTestImpl: defined in file [D:\Work\idea_workspace\demo\target\classes\com\demo\service\impl\UserServiceTestImpl.class]
原因:
UserServiceTestImpl是UserServiceImpl的子类。@Autowired先跟据type,没办法区分,然后跟据name,两个都不是,还是不能确定注入哪个bean。
解决:
确定bean的name就行。指定哪个name,注入的就是哪个。
ps:这个例子只是为了说明这个问题,正常不会这么写。