3-10 公共模块统一测试
spring boot本身扫描的是自己同级别的目录以及子级别的目录。
所以它能扫描的范围就是在com.mooc.mettingfilm.user这个范围下。
但是我们utils里面也有东西需要被扫描到。比如我们刚刚建的这个统一的异常处理类
所以我们要手工指定我们的扫描。指定扫描的目录到mettingfilm这一级别就可以了。
开始测试
启动工程
启动工程会报错。
org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'moocBackendUserTMapper' for bean class [com.mooc.meetingfilm.backend.common.dao.mapper.MoocBackendUserTMapper] conflicts with existing, non-compatible bean definition of same name and class [com.mooc.meetingfilm.user.dao.mapper.MoocBackendUserTMapper]
moocBackendUserTMapper有一个同名称的class
这是因为user表我们之前子common里面测试过了。所以删除common下的dao包和下面的所有类即可,
test里面也要删掉
backend也删除。
启动工程。postman做测试
localhost:8080/user/login
{ "username":"admin", "password":"admin" }
测试公共的异常是否好用。这里限制了username和password不能为空。
把password去掉了。
同时在控制台,我们也打印了日志
自己遇到的问题
故意不输入password遇到的错误。返回的信息格式不是我们定义好的。
同时控制台还有错误
后来经过排查发现是抛出异常的地方,没有加@ResponseBody的注解
controller返回中文乱码
这里正常返回的应该是用户名或密码不能为空,但是中文的时候返回了乱码
网上找到了一些方法尝试了,但是暂时还是没有解决这个问题,下面两个链接的地址都尝试了。
Springboot项目中文乱码解决(源码案例)
http://jvm123.com/2019/10/springboot-xiang-mu.html
SpringBoot 的Controller类返回数据, 中文乱码
http://www.imooc.com/qadetail/338589?lastmedia=1
中文乱码 莫名其妙的好了
在完成了3-11的代码后,再次打开了postman进行测试。返回了正常的中文。
首先是只参考了这个地址:http://www.imooc.com/qadetail/338589?lastmedia=1
修改后,记得重启下postman,也可能postman有缓存之类的?无意间关掉了postman又打开,发现中文正常了。
结束