最近刚上完实训课,就想着自己做一个springBoot+vue的项目
由于经验不足,我是半自己做半模仿着老师的步骤,导致有的知识点知其然不知其所以然
当我把所有步骤做完之后,以为可以成功了
不料,意外还是发生了,如下
出现这种错误有可能有很多种原因:
有说MyApplication位置不对的,应该放在与controller同一包下;
有说检查一下@RequestMapping("/xxx")和@GetMapping("/xxx")写对了没有;
上面两种情况我排除了
结果找了很久很久
终于发现了猫腻
在mapper包中的“xxxMapper”接口没有写@Mapper注解
问题排除,再次运行,成功!!
总结一下
遇到Whitelabel Error Page这类问题,从以下三方面排查错误:
- 注解是否写错/漏写;
- @RequestMapping("/xxx")和@GetMapping("/xxx")写对了没有;
- MyApplication.java的位置是否与controller在同一个包下。
当然在写项目的时候会遇到各种各样的问题
一定要耐心的去寻找bug
要不断的试错才能够快速进步
另一种解法
在每一个xxxMapper接口添加@Mapper注解,会比较繁琐,甚至容易漏写
查阅资料,可以在MyApplication.java中添加@MapperScan("com.xxx.mapper")
即可以自动扫描mapper包下的xxxMapper接口
@MapperScan和@Mapper区别及理解
作用
扫描项目中的Dao层,将dao接口类注入到Spring,能够让其他类进行引用;
-
@Mapper
:在dao接口类中,添加此注解;麻烦的在于,每个dao接口类都必须添加此注解; -
@MapperScan
:可以指定要扫描的dao接口类的路径,可以在启动类中添加此注解,可替代@Mapper注解(此模块内dao接口类不用都添加@Mapper注解)
我的项目结构: