1. 自定义消息转换器
1.1 消息转换器作用
不知道大家有没有遇到过这种情况:后台接口返回一个实例,当你需要使用某个属性的值时,你还要判断一下值是否为null;接口返回一堆属性值为null的属性等
ok,消息转换器可以帮你解决这个问题
1.2 添加fastjson依赖
在build.gradle中添加compile group: 'com.alibaba', name: 'fastjson', version: '1.2.47'
1.3 新建WebConfigurer
1 | @Configuration |
config.setSerializerFeatures()方法可以添加多个配置
1 | WriteNullListAsEmpty :List字段如果为null,输出为[],而非null |
1.4 测试
还是请求第二节中的那个接口,返回结果如下图
/img1.png)
2. 添加全局异常处理
2.1 为什么需要定义全局异常
说白了就是为了减少前后端交互,出现错误的概率,即使出现错误,也不会导致前端出现崩溃。
2.2 添加全局异常捕捉类GlobalExceptionResolver
1 | @ControllerAdvice |
2.3 更改配置文件
打开application.properties,添加下面2行代码1
2
3
4# 出现 404 错误时, 直接抛出异常
spring.mvc.throw-exception-if-no-handler-found=true
# 不要为我们工程中的资源文件建立映射
spring.resources.add-mappings=false
2.4 修改代码 UserInfoServiceImpl文件
1 | public UserInfo selectById(Integer id){ |
2.5 测试接口、结果如下
/img2.png)