当前位置: 首页 > news >正文

百度网站大全帝国网站管理系统视频教程

百度网站大全,帝国网站管理系统视频教程,wordpress聊天,培训网站平台如何推广统一返回结果 定义统一返回结果类ResultResponse定义新注解ResponseResult来标记需要拦截的方法或类添加RestControllerAdvice注解#xff0c;实现ResponseBodyAdvice接口#xff0c;重写support, beforeBodyWrite方法 统一结果类ResultResponse Setter Getter public cla…统一返回结果 定义统一返回结果类ResultResponse定义新注解ResponseResult来标记需要拦截的方法或类添加RestControllerAdvice注解实现ResponseBodyAdvice接口重写support, beforeBodyWrite方法 统一结果类ResultResponse Setter Getter public class ResultResponseT {/*** 响应代码*/private String code;/*** 响应消息*/private String message;/*** 响应结果*/private T result;public ResultResponse() {}public ResultResponse(BaseErrorInfoInterface errorInfo) {this.code errorInfo.getResultCode();this.message errorInfo.getResultMsg();}/*** 成功*/public static T ResultResponseT success() {return success(null);}/*** 成功*/public static T ResultResponseT success(T data) {ResultResponseT rb new ResultResponse();rb.setCode(ExceptionEnum.SUCCESS.getResultCode());rb.setMessage(ExceptionEnum.SUCCESS.getResultMsg());rb.setResult(data);return rb;}/*** 失败*/public static T ResultResponseT error(BaseErrorInfoInterface errorInfo) {ResultResponseT rb new ResultResponse();rb.setCode(errorInfo.getResultCode());rb.setMessage(errorInfo.getResultMsg());rb.setResult(null);return rb;}/*** 失败*/public static T ResultResponseT error(String code, String message) {ResultResponseT rb new ResultResponse();rb.setCode(code);rb.setMessage(message);rb.setResult(null);return rb;}/*** 失败*/public static T ResultResponseT error(String message) {ResultResponseT rb new ResultResponse();rb.setCode(-1);rb.setMessage(message);rb.setResult(null);return rb;}Overridepublic String toString() {return JSONObject.toJSONString(this);}}定义新注解ResponseResult Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD, ElementType.TYPE}) Documented public interface ResponseResult { }ResponseResultBodyAdvice类 support方法判断支持的类型beforeBodyWrite方法对controller的结果进行构造即构造成json格式RestControllerAdvice注解ResponseBodyControllerAdvice RestControllerAdvice Slf4j public class ResponseResultBodyAdvice implements ResponseBodyAdviceObject {Resourceprivate ObjectMapper objectMapper;private static final Class? extends Annotation ANNOTATION_TYPE ResponseResult.class;Overridepublic boolean supports(MethodParameter returnType, Class? extends HttpMessageConverter? converterType) {return AnnotatedElementUtils.hasAnnotation(returnType.getContainingClass(), ANNOTATION_TYPE) || returnType.hasMethodAnnotation(ANNOTATION_TYPE);}SneakyThrowsOverridepublic Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class? extends HttpMessageConverter? selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {// 如果返回类型是string那么springmvc是直接返回的此时需要手动转化为jsonClass? returnClass returnType.getMethod().getReturnType();if (body instanceof String || Objects.equals(returnClass, String.class)) {return objectMapper.writeValueAsString(ResultResponse.success(body));}// 防止重复包裹的问题出现if (body instanceof ResultResponse) {return body;}return ResultResponse.success(body);} }统一捕获异常 ExceptionHandler(value BizException.class) 捕获自定义异常 ControllerAdvice public class GlobalExceptionHandler {private static final Logger logger LoggerFactory.getLogger(GlobalExceptionHandler.class);/*** 处理自定义的业务异常** param req* param e* return*/ExceptionHandler(value BizException.class)ResponseBodypublic ResultResponseVoid bizExceptionHandler(HttpServletRequest req, BizException e) {logger.error(发生业务异常原因是{}, e.getErrorMsg());return ResultResponse.error(e.getErrorCode(), e.getErrorMsg());}/*** 处理空指针的异常** param req* param e* return*/ExceptionHandler(value NullPointerException.class)ResponseBodypublic ResultResponseVoid exceptionHandler(HttpServletRequest req, NullPointerException e) {logger.error(发生空指针异常原因是:, e);return ResultResponse.error(ExceptionEnum.BODY_NOT_MATCH);}/*** 处理其他异常** param req* param e* return*/ExceptionHandler(value Exception.class)ResponseBodypublic ResultResponseVoid exceptionHandler(HttpServletRequest req, Exception e) {logger.error(未知异常原因是:, e);return ResultResponse.error(ExceptionEnum.INTERNAL_SERVER_ERROR);} }
http://www.hkea.cn/news/14420418/

相关文章:

  • 东莞高端网站建设哪个好wordpress用七牛
  • 一流的句容网站建设小程序定制开发公司前十名
  • 申请网站空间是申请域名吗蚌埠网站建设蚌埠
  • 为什么访问外国网站速度慢找工程包工平台app
  • 做网站创业需要注册公司吗湘西州住房和城乡建设局网站
  • 房地产微网站模板深圳建网站公司
  • 网站安全注意哪些问题吗网站前台模板下载
  • 软件网站排名潍坊网站制作厂家
  • 外贸 网站设计公司网站的服务器
  • 寻找在山西运城专业做网站推广的峨眉山网站建设
  • 西昌城乡建设网站网站开发会员功能教程
  • 六盘水住房和城乡建设部网站网站建设120
  • 如何在网站页面做标注wordpress添加flash
  • 单页面网站 seo17网站一起做网店白沟
  • 深圳做分销网站的公司logoko
  • 西安网站建设的网站如何修改管理网站
  • 欧美网站建设公司排名物流公司上门取大件托运
  • 腾讯云 wordpress建站做移动网站快速排
  • 浙江网站备案流程烟台学校网站建设
  • 滨州建网站仿牌网站空间
  • 北京专业企业营销网站建设陵水媒体建站哪家好
  • 网站 建设 步骤阿里巴巴吧网站怎么做
  • 轻淘客cms建站教程网站开发技术招聘
  • 网站后台编程语言网络营销就是
  • 房产网站开发文档怎么给一个网站做seo
  • 上海网站建设电免费的编程软件下载
  • 阜阳制作网站公司建设电影网站算盗版吗
  • 最少的钱怎么做网站做网站要考虑的
  • pc网站优化排名毕设DW做网站的过程
  • 青岛网站建设迅优长春网站制作建设