为什么在 Controller 层 提示 自动注入的找不到Service 层的bean

为什么在 Controller 层 提示 自动注入的找不到Service 层的bean

@Controller
public class UserInfoController {
   @Autowired
   UserService userService;

   //启动后默认到首页
   @RequestMapping("/")
   public String view() {
       return "login";
   }
   //测试连接到数据库
   @RequestMapping("/test")
   @ResponseBody
   public UserInfo geyUser(){

       return userService.getUser();
   }
}


@Service
public interface UserService {
   UserInfo getUser();
}



public class UserServiceImpl implements UserService {
   @Autowired
   UserInfoMapper userInfoMapper;
   @Override
   public UserInfo getUser() {
       return userInfoMapper.selectByPrimaryKey(1);
   }
}

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,建议同学检查一下mapper类上是否有加@Repository注解,如:

http://img1.sycdn.imooc.com//climg/5f0aee1f099ed07e05340196.jpg

祝:学习愉快~

  • rock221 #1

    老师,自动生成的mapper接口都没有这个注解,需要必须添加才可以注入依赖吗?因为之前的mvc,就不需要,通过mapper扫描器,记得可以自动识别的。 

    2021-06-08 12:02:11
  • 同学你好,通过mapper扫描器是可以自动识别mapper接口,可以不加@Repository注解。

    祝学习愉快~

    2021-06-08 16:30:08
  • 我知道mvc的mapper扫描器不需要加,这里的spring-boot需要加吧。 使的MapperScan注解的作用是,告知mybatis哪个包下的类是mapper接口,并与之绑定xml生成实现类吧。 和mapper扫描器还是有点区别的。

    2021-06-08 16:33:06
weixin_慕设计3182901 提问者 2020-07-12 18:59:12

老师,这里又报红了

http://img1.sycdn.imooc.com//climg/5f0aece5099521d305160188.jpghttp://img1.sycdn.imooc.com//climg/5f0aecc5093ece2411360319.jpg

  • Could not autowire. No beans of 'UserInfoMapper' type found.
    2020-07-12 19:00:58
  • 百度了下,实际运行是没有问题的,是IDEA里面检查的问题
    2020-07-12 19:06:01
好帮手慕阿满 2020-07-12 18:50:30

同学你好,@Service注解应该写在UserServiceImpl实现类类名上边,而不是接口。建议同学修改一下再试试。

祝:学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师