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

重庆网站建设mswzjs批量发布wordpress文章

重庆网站建设mswzjs,批量发布wordpress文章,网页视频下载用什么软件最好,西安网站建设求职简历Session 认证和 Token 认证 过滤器和拦截器 SpringBoot统一返回和统一异常处理 上篇文章我们学习了基于 Token 认证的登录功能实现#xff0c;分别使用了过滤器和拦截器去实现登录功能#xff0c;这篇文章我们来学习项目中常用的统一返回结果和统一异常处理。 一、统一返… Session 认证和 Token 认证 过滤器和拦截器 SpringBoot统一返回和统一异常处理 上篇文章我们学习了基于 Token 认证的登录功能实现分别使用了过滤器和拦截器去实现登录功能这篇文章我们来学习项目中常用的统一返回结果和统一异常处理。 一、统一返回结果 前后端分离时代如果没有一个统一的数据返回格式前后端调试时前端开发人员会骂娘的同时约定相同的返回接口数据也有助于高效的工作。 通常统一返回的格式包含三部分 code状态码一般 200 表示正常message状态码对应的描述。data返回的数据 1.1、统一返回对象 新建一个 SpringBoot 项目定义通用的响应对象 package com.laoxiang.utils;import com.fasterxml.jackson.annotation.JsonInclude;import java.io.Serializable;/*** author db* version 1.0* description ResponseResult* since 2023/7/12*/ JsonInclude(JsonInclude.Include.NON_NULL) public class ResponseResultT implements Serializable {private static final long serialVersionUID 2233637474601103587L;// 接口响应状态码private Integer code;// 接口响应信息private String msg;// 接口响应的数据private T data;public ResponseResult() {this.code AppHttpCodeEnum.SUCCESS.getCode();this.msg AppHttpCodeEnum.SUCCESS.getMsg();}public ResponseResult(Integer code, T data) {this.code code;this.data data;}public ResponseResult(Integer code, String msg, T data) {this.code code;this.msg msg;this.data data;}public ResponseResult(Integer code, String msg) {this.code code;this.msg msg;}public static ResponseResult errorResult(int code, String msg) {ResponseResult result new ResponseResult();return result.error(code, msg);}public static ResponseResult okResult() {ResponseResult result new ResponseResult();return result;}public static ResponseResult okResult(int code, String msg) {ResponseResult result new ResponseResult();return result.ok(code, null, msg);}public static ResponseResult okResult(Object data) {ResponseResult result setAppHttpCodeEnum(AppHttpCodeEnum.SUCCESS, AppHttpCodeEnum.SUCCESS.getMsg());if (data ! null) {result.setData(data);}return result;}public static ResponseResult errorResult(AppHttpCodeEnum enums) {return setAppHttpCodeEnum(enums, enums.getMsg());}public static ResponseResult errorResult(AppHttpCodeEnum enums, String msg) {return setAppHttpCodeEnum(enums, msg);}public static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums) {return okResult(enums.getCode(), enums.getMsg());}private static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums, String msg) {return okResult(enums.getCode(), msg);}public ResponseResult? error(Integer code, String msg) {this.code code;this.msg msg;return this;}public ResponseResult? ok(Integer code, T data) {this.code code;this.data data;return this;}public ResponseResult? ok(Integer code, T data, String msg) {this.code code;this.data data;this.msg msg;return this;}public ResponseResult? ok(T data) {this.data data;return this;}public Integer getCode() {return code;}public void setCode(Integer code) {this.code code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg msg;}public T getData() {return data;}public void setData(T data) {this.data data;} }1.2、系统常量 上面代码中提到了常量 AppHttpCodeEnum定义自己的应用程序特定状态码来表示具体的情况。通过定义的状态码就可以知道具体代表什么意思。 package com.laoxiang.utils;/*** author db* version 1.0* description AppHttpCodeEnum* since 2023/7/12*/ public enum AppHttpCodeEnum {// 成功SUCCESS(200,操作成功),// 失败ERROR(500,操作失败),int code;String msg;AppHttpCodeEnum(int code, String errorMessage){this.code code;this.msg errorMessage;}public int getCode() {return code;}public String getMsg() {return msg;} }1.3、web 层统一响应结果 下面的例子可以看到在实际项目中接口返回值。 二、统一异常处理 程序开发中不可避免的会遇到异常现象如果不进行处理遇到异常时开发人员不能清晰地处理问题或者使用 try{...}catch{...} 代码块进行处理但是满屏的 try{...}catch{...} 代码块造成代码过于臃肿。 有没有更好的处理方式呢全局统一异常处理应运而生。ControllerAdvice 注解搭配 ExceptionHandler 进行全局统一异常处理。 2.1、ControllerAdvice注解 ControllerAdvice注解用于声明一个全局控制器 Advice相当于把 ExceptionHandler、InitBinder 和 ModelAttribute 注解的方法集中到一个地方。放在特定类上被认为是全局异常处理器。 2.2、ExceptionHandler 注解 用于定义异常处理方法处理特定类型的异常。放在全局异常处理器类中的具体方法上。 通过这两个注解的配合可以实现全局的异常处理。当控制器中抛出异常时SpringBoot 会自动调用匹配的 ExceptionHandler 方法来处理异常并返回定义的响应。 步骤如下 新建一个统一异常处理类类上标注 RestControllerAdvice 注解在方法上标注 ExceptionHandler 注解并且指定需要捕获的异常可以同时捕获多个。 新建 exception 包在包下新建 GlobalExceptionHandler 类。代码如下 package com.duan.execption;import com.duan.pojo.AppHttpCodeEnum; import com.duan.pojo.ResponseResult; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice;/*** author db* version 1.0* description GlobalExceptionHandler* since 2023/7/23*/ RestControllerAdvice Slf4j public class GlobalExceptionHandler {// 全局异常ExceptionHandler(Exception.class)public ResponseResult exceptionHandler(Exception e){//打印异常信息log.error(出现了异常 {},e);//从异常对象中获取提示信息封装返回return ResponseResult.errorResult(AppHttpCodeEnum.SYSTEM_ERROR.getCode(),e.getMessage());}// 自定义异常ExceptionHandler(LxAdminException.class)public ResponseResult LxAdminExceptionHandler(LxAdminException e){//打印异常信息log.error(出现了异常 {},e);//从异常对象中获取提示信息封装返回return ResponseResult.errorResult(e.getCode(),e.getMsg());}}在exception包下新建自定义异常处理类 LxAdminException package com.duan.execption;import com.duan.pojo.AppHttpCodeEnum; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;/*** author db* version 1.0* description LxAdminException 自定义异常* since 2023/7/23*/ Data AllArgsConstructor NoArgsConstructor public class LxAdminException extends RuntimeException{private int code;private String msg;public LxAdminException(AppHttpCodeEnum httpCodeEnum) {super(httpCodeEnum.getMsg());this.code httpCodeEnum.getCode();this.msg httpCodeEnum.getMsg();} }2.3、统一异常处理使用 在业务开发中可以在 service 层处理业务时可以手动抛出异常由全局异常处理器处理进行统一处理。 package com.duan.controller;import com.duan.execption.LxAdminException; import com.duan.pojo.AppHttpCodeEnum; import com.duan.pojo.ResponseResult; import com.duan.pojo.User; import com.duan.utils.JWTUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController;import java.util.HashMap; import java.util.UUID;/*** author db* version 1.0* description LoginController* since 2023/12/19*/ RestController Slf4j public class LoginController {PostMapping(/login)public ResponseResult login(RequestBody User user){log.info(这是正常日志);if(!admin.equals(user.getUsername()) !123456.equals(user.getPassword())){throw new LxAdminException(AppHttpCodeEnum.LOGIN_ERROR);}else{HashMapString, Object map new HashMap();map.put(id, UUID.randomUUID().toString());// 生成tokenString token JWTUtils.generateJwt(map);return ResponseResult.okResult(token);}}}当我们请求接口时假如用户名称或者密码错误接口就会响应 {code: 505,msg: 用户名或密码错误,data: null }实际开发中还有许多的异常需要捕获比如 Token 失效、过期等异常 如果整合了其他的框架还要注意这些框架抛出的异常比如Spring Security 等框架。 代码地址https://gitee.com/duan138/practice-code/tree/dev/resultException 三、总结 在 SpringBoot 项目中统一返回和统一异常处理是非常常用的一环它们能提高应用的可读性和可维护性统一返回有助于保持代码一致性和规范性在前后端联调时更加方便统一异常处理减少了代码冗余对异常处理更加易于管理。 下一篇我们来看看 SpringBoot 项目中怎么进行日志处理。 改变你能改变的接受你不能改变的关注公众号程序员康康一起成长共同进步。
http://www.pierceye.com/news/211856/

相关文章:

  • 做网站下载别人的图算不算侵权源码之家免费
  • 宁夏住房城乡建设厅网站应用网站建设
  • 宾馆网站建设网站建设管理规范
  • 内部网站建设的步骤过程选择邯郸做网站
  • 国外免费外贸网站dw网页制作教程个人网站
  • 西安建设局网站地址室内设计效果图一套方案
  • php 建网站电子商务网站建设项目规划书
  • 常熟建设局网站代理办营业执照的公司
  • 济南网站关键词优化公司如何制作网站赚钱
  • 长春旅游网站开发360投放广告怎么收费
  • 微信公众号做网站卖东西静态化网站的缺点
  • 网站空间购买今天的新闻头条最新消息
  • 网站制作教程图解怎么解压wordpress
  • 唐山市城市建设规划局网站腾讯云建设一个网站要多少钱
  • 邢台集团网站建设费用聚牛建设网站
  • 如何创建电子商务网站学校网站设计首页
  • 扬州建设投资集团网站世界总人口实时数据
  • 沧州制作网站食品商务网-网站建设
  • 0592 网站建设模板网站建设+百度
  • 请人做个网站多少钱免费商城app
  • 网站建设包括哪些方面?手游源码网站
  • 机关门户网站建设管理情况软件开发工具都有哪些
  • 官方网站建设专家磐石网络wordpress对应的id
  • 学生自做网站优秀作品徐州企业建站模板
  • 网络电子商务购物网站idc机房建设
  • 网站单页seo个人服务器网站备案
  • 装修队伍做网站做机票在线预订网站
  • 手机版企业网站php山西建设执业注册中心网站
  • 南充网站建设略奥科技凡科建站电话
  • 个人网站可以做自媒体吗手机网站建设需要多少钱