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

最好的国际贸易网站西安异构国际设计

最好的国际贸易网站,西安异构国际设计,中山软件开发,qq企业邮箱登录在这里首先感谢的就是程序员老罗&#xff0c;从他的项目里面学到了这些东西。 首先就是去创建一个SpringBoot项目&#xff0c;这里我就不多做赘述了 封装一个统一返回对象 package com.example.demo.vo;public class ResponseVO<T> {private String status;private In…

在这里首先感谢的就是程序员老罗,从他的项目里面学到了这些东西。

首先就是去创建一个SpringBoot项目,这里我就不多做赘述了

封装一个统一返回对象

package com.example.demo.vo;public class ResponseVO<T> {private String status;private Integer code;private String info;private T data;public String getStatus() {return status;}public void setStatus(String status) {this.status = status;}public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getInfo() {return info;}public void setInfo(String info) {this.info = info;}public T getData() {return data;}public void setData(T data) {this.data = data;}
}

封装一个异常返回对象

package com.example.demo.exception;
import com.example.demo.entity.enums.ResponseCodeEnum;public class BusinessException extends RuntimeException {private ResponseCodeEnum codeEnum;private Integer code;private String message;public BusinessException(String message, Throwable e) {super(message, e);this.message = message;}public BusinessException(String message) {super(message);this.message = message;}public BusinessException(Throwable e) {super(e);}public BusinessException(ResponseCodeEnum codeEnum) {super(codeEnum.getMsg());this.codeEnum = codeEnum;this.code = codeEnum.getCode();this.message = codeEnum.getMsg();}public BusinessException(Integer code, String message) {super(message);this.code = code;this.message = message;}public ResponseCodeEnum getCodeEnum() {return codeEnum;}public Integer getCode() {return code;}@Overridepublic String getMessage() {return message;}/*** 重写fillInStackTrace 业务异常不需要堆栈信息,提高效率.*/@Overridepublic Throwable fillInStackTrace() {return this;}}

定义一个请求结果的枚举

package com.example.demo.entity.enums;public enum ResponseCodeEnum {CODE_200(200,"请求成功"),CODE_404(404,"请求地址不存在"),CODE_600(600,"请求参数错误"),CODE_601(601,"信息已经存在"),CODE_500(500,"服务器返回错误,请联系管理员");private Integer code;private String msg;ResponseCodeEnum(Integer code, String msg) {this.code = code;this.msg = msg;}public Integer getCode() {return code;}public String getMsg() {return msg;}
}

封装一个统一的返回方法(正确,错误,异常)

package com.example.demo.controller;import com.example.demo.entity.enums.ResponseCodeEnum;
import com.example.demo.exception.BusinessException;
import com.example.demo.vo.ResponseVO;public class ABaseController {protected static final String STATUS_SUCCESS = "success";protected static final String STATUS_ERROR = "error";protected <T> ResponseVO getSuccessResponseVO(T t){ResponseVO<T> responseVO = new ResponseVO<>();responseVO.setStatus(STATUS_SUCCESS);responseVO.setCode(ResponseCodeEnum.CODE_200.getCode());responseVO.setInfo(ResponseCodeEnum.CODE_200.getMsg());responseVO.setData(t);return responseVO;}protected <T> ResponseVO getBusinessErrorResponseVO(BusinessException e,T t){ResponseVO vo = new ResponseVO<>();vo.setStatus(STATUS_ERROR);if(e.getCode() == null){vo.setCode(ResponseCodeEnum.CODE_600.getCode());}else{vo.setCode(e.getCode());}vo.setInfo(e.getMessage());vo.setData(t);return vo;}protected <T> ResponseVO getServerErrorResponseVO(T t){ResponseVO vo = new ResponseVO<>();vo.setStatus(STATUS_ERROR);vo.setCode(ResponseCodeEnum.CODE_500.getCode());vo.setInfo(ResponseCodeEnum.CODE_500.getMsg());vo.setData(t);return vo;}}

定义一个全局的异常处理器

package com.example.demo.controller;import com.example.demo.entity.enums.ResponseCodeEnum;
import com.example.demo.exception.BusinessException;
import com.example.demo.vo.ResponseVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
import org.springframework.web.servlet.NoHandlerFoundException;
import org.yaml.snakeyaml.constructor.DuplicateKeyException;import javax.servlet.http.HttpServletRequest;@RestControllerAdvice
public class AGlobalExceptionHandlerController extends ABaseController {private static final Logger logger = LoggerFactory.getLogger(AGlobalExceptionHandlerController.class);@ExceptionHandler(value = Exception.class)public Object handleException(Exception e, HttpServletRequest request){logger.error("请求错误,请求地址{},错误信息:", request.getRequestURL(), e);ResponseVO ajaxResponse = new ResponseVO();//404if (e instanceof NoHandlerFoundException) {ajaxResponse.setCode(ResponseCodeEnum.CODE_404.getCode());ajaxResponse.setInfo(ResponseCodeEnum.CODE_404.getMsg());ajaxResponse.setStatus(STATUS_ERROR);} else if (e instanceof BusinessException) {//业务错误BusinessException biz = (BusinessException) e;ajaxResponse.setCode(biz.getCode() == null ? ResponseCodeEnum.CODE_600.getCode() : biz.getCode());ajaxResponse.setInfo(biz.getMessage());ajaxResponse.setStatus(STATUS_ERROR);} else if (e instanceof BindException || e instanceof MethodArgumentTypeMismatchException) {//参数类型错误ajaxResponse.setCode(ResponseCodeEnum.CODE_600.getCode());ajaxResponse.setInfo(ResponseCodeEnum.CODE_600.getMsg());ajaxResponse.setStatus(STATUS_ERROR);} else if (e instanceof DuplicateKeyException) {//主键冲突ajaxResponse.setCode(ResponseCodeEnum.CODE_601.getCode());ajaxResponse.setInfo(ResponseCodeEnum.CODE_601.getMsg());ajaxResponse.setStatus(STATUS_ERROR);} else {ajaxResponse.setCode(ResponseCodeEnum.CODE_500.getCode());ajaxResponse.setInfo(ResponseCodeEnum.CODE_500.getMsg());ajaxResponse.setStatus(STATUS_ERROR);}return ajaxResponse;}}

最后进行测试

package com.example.demo.controller;import com.example.demo.entity.enums.ResponseCodeEnum;
import com.example.demo.exception.BusinessException;
import com.example.demo.vo.ResponseVO;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ResponseStatusException;
import org.yaml.snakeyaml.constructor.DuplicateKeyException;@RestController
public class hello extends ABaseController {@RequestMapping("/hello")public void hello() {throw new BusinessException(ResponseCodeEnum.CODE_404);}
}

测试结果

http://www.yayakq.cn/news/415973/

相关文章:

  • 免费注册网站免登录WordPress最快主题
  • 小学网站建设实施方案吉林长春seo网站建设网站优化
  • 网站 不 备案新机发布最新消息
  • 郑州网站建设氵汉狮网络创意营销案例
  • iis配置网站无法浏览wordpress悬浮小人
  • 医院证明p图软件在线网站图片加载 优化
  • 怎样注册自己网站的域名做网站建设销售辛苦吗
  • 重庆永川建设银行网站重庆住房和城乡建设厅官方网站
  • 上海模板建站哪家好牛商网网站源码
  • 境外网站icp备案品牌策划公司的市场
  • 浙江公司网站建设推广wordpress 安装语言包
  • 东城做网站wordpress给用户发消息
  • 搜狗网站推广wordpress+软件+入门
  • 麻涌做网站免费域名网站申请
  • 广州市国外网站建设平台wordpress微信底部导航
  • 搭建网站的企业做网站一般都是那些人 会做
  • 中国建设教育网站jsp网站开发中js的问题
  • 云南公司网站开发手机微网站第二年续费吗
  • 西安的网站设计公司名称珠海网站建设专线
  • 织梦自动生成手机网站网站开发需要学什么语言
  • 个人可以备案什么网站C#如何做简易网站
  • 长沙网站公司品牌高端网站建设注意
  • 服装网站建设建议网站权重什么意思
  • 徐州手机网站建设公司常熟网站制作
  • jsp网站开发网上订餐系统建设公司网站需要什么科目
  • 360网站运营百度网盘网页版
  • 长春模板建站系统扬中网站建设服务
  • 深圳网站设计公司在什么地方专业简历怎么填
  • 网站建设的图片叠加步骤过程什么语言做网站
  • 英文网站建设60建网站价格 优帮云