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

网络架构结构恩施seo搜索引擎优化

网络架构结构,恩施seo搜索引擎优化,杭州公司注册网上核名,seo优化招聘统一返回结果 定义统一返回结果类ResultResponse定义新注解ResponseResult来标记需要拦截的方法或类添加RestControllerAdvice注解,实现ResponseBodyAdvice接口,重写support, beforeBodyWrite方法 统一结果类ResultResponse Setter Getter public cla…

统一返回结果

  1. 定义统一返回结果类ResultResponse
  2. 定义新注解@ResponseResult来标记需要拦截的方法或类
  3. 添加RestControllerAdvice注解,实现ResponseBodyAdvice接口,重写support, beforeBodyWrite方法

统一结果类ResultResponse

@Setter
@Getter
public class ResultResponse<T> {/*** 响应代码*/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> ResultResponse<T> success() {return success(null);}/*** 成功*/public static <T> ResultResponse<T> success(T data) {ResultResponse<T> rb = new ResultResponse<>();rb.setCode(ExceptionEnum.SUCCESS.getResultCode());rb.setMessage(ExceptionEnum.SUCCESS.getResultMsg());rb.setResult(data);return rb;}/*** 失败*/public static <T> ResultResponse<T> error(BaseErrorInfoInterface errorInfo) {ResultResponse<T> rb = new ResultResponse<>();rb.setCode(errorInfo.getResultCode());rb.setMessage(errorInfo.getResultMsg());rb.setResult(null);return rb;}/*** 失败*/public static <T> ResultResponse<T> error(String code, String message) {ResultResponse<T> rb = new ResultResponse<>();rb.setCode(code);rb.setMessage(message);rb.setResult(null);return rb;}/*** 失败*/public static <T> ResultResponse<T> error(String message) {ResultResponse<T> 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类

  1. support方法,判断支持的类型;beforeBodyWrite方法,对controller的结果进行构造即构造成json格式
  2. RestControllerAdvice注解=ResponseBody+ControllerAdvice
@RestControllerAdvice
@Slf4j
public class ResponseResultBodyAdvice implements ResponseBodyAdvice<Object> {@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);}@SneakyThrows@Overridepublic 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 ResultResponse<Void> 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 ResultResponse<Void> 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 ResultResponse<Void> exceptionHandler(HttpServletRequest req, Exception e) {logger.error("未知异常!原因是:", e);return ResultResponse.error(ExceptionEnum.INTERNAL_SERVER_ERROR);}
}
http://www.yayakq.cn/news/411407/

相关文章:

  • 免费网站建设入门微信小程序制作教学
  • 网站建设外包需要注意哪些邹平市建设局官方网站
  • 注册公司查名字哪个网站做互助盘网站多少钱
  • 为某网站做一则广告语建设网站毕业设计开题报告
  • 那种投票网站里面怎么做做落地页的网站
  • 中国站长之家域名查询个人网页设计与制作模板教程
  • 化妆网站模板南昌做网站排名
  • 做网站 赚钱吗制作网页最多的图片格式
  • 推广网站的方法帮平台做推广怎么赚钱
  • 手机怎做网站二次开发软件
  • 如何使用阿里云建站做京挑客的网站有哪些
  • 国外网站域名 中国哪个杭州seo好
  • 为什么我自己做的网站搜索不到个人简历网免费模板
  • 珠海市网站建设哪家好php网站开发试卷
  • 一个服务器下怎么做两个网站可以建网站的软件
  • php培训网站源码什么项目必须走辽宁建设工程信息网
  • 网站建设费如何做账网站建设与管理课程实训
  • 小说网站做编辑常见的网站空间有哪些
  • 做亚马逊学英语有什么网站吗制做网站首先应该怎么做
  • wordpress全站链接制定一个网站建设方案
  • 如何提高网站访问速度的文章国外网站建设费用
  • 物流公司官方网站视频内容seo
  • 网站怎么设置支付功能android网站开发
  • 谷歌网站收录提交入口wordpress文字环绕图片
  • 建设网站制作实训报告在线文字logo设计
  • php 网站提速越南国家建设部网站
  • 网站开发要学的代码创意产品
  • 医疗网站备案wordpress打造
  • 网站建设yu深圳市西特塔网站建设工作室
  • 建网站的程序免费重庆做网站建设团队