标签:unifi global shel ext 情况 index depend 出现 stc
摘自:https://www.cnblogs.com/Purgeyao/p/11781408.html
简介
重复功能我来写。在 SpringBoot
项目里都有全局异常处理以及返回包装等,返回前端是带上succ
、code
、msg
、data
等字段。单个项目情况下很好解决,当微服务模块多的情况下,很多情况开发都是复制原有代码进行构建另外一个项目的,导致这些功能升级需要修改多个服务,在这个基础上,我们封装了一个组件 unified-dispose-springboot-starter
里面包含了一些基础的异常处理以及返回包装功能。
添加依赖
ps: 实际version版本请使用最新版
最新版本:
启动类添加 @EnableGlobalDispose
注解开启以下功能。
在项目中经常出现系统异常的情况,比如NullPointerException
等等。如果默认未处理的情况下,springboot
会响应默认的错误提示,这样对用户体验不是友好,系统层面的错误,用户不能感知到,即使为500
的错误,可以给用户提示一个类似服务器开小差
的友好提示等。
模块里以及包含了一些基本的异常处理方式(及不需要做任何代码编写已经具有基本异常处理),以及一些常见的异常code,用户只需要关心业务异常处理即可,直接通过 throw new 异常
的方式抛出即可。
通常不建议直接抛出通用的BusinessException异常,应当在对应的模块里添加对应的领域的异常处理类以及对应的枚举错误类型。
如会员模块:
创建UserException
异常类、UserErrorCode
枚举、以及UserExceptionHandler
统一拦截类。
UserException:
UserErrorCode:
UserExceptionHandler:
最后业务使用如下:
上述方式,抛出异常后会被模块处理。前台返回如下:
在REST风格的开发中,避免通常会告知前台返回是否成功以及状态码等信息。这里我们通常返回的时候做一次util
的包装处理工作,如:Result
类似的类,里面包含succ
、code
、msg
、data
等字段。
接口调用处理类似如下:
结果:
默认情况所有的 web controller
都会被封装为一下返回格式。
接口:
返回
@IgnorReponseAdvice
允许范围为:类 + 方法,标识在类上这个类下的说有方法的返回都将忽略返回封装。
接口:
返回 test
项目里很多重复的code,我们可以通过一定的方式去简化,以达到一定目的减少开发量。PurgeTeam 具有一些优秀的开源组件,减少日常的开发量。
示例代码地址:unified-dispose-springboot
作者GitHub:
Purgeyao 欢迎关注
qq交流群:
812321371
微信交流群:MercyYao
微信公众号:
__EOF__
标签:unifi global shel ext 情况 index depend 出现 stc
原文地址:https://www.cnblogs.com/xichji/p/11793450.html