随记一、个人认知全局异常类和统一返回结果
目录
前言
在学习完了springboot和单体架构的一些技术之后,理解了一些东西,对全局异常类和统一返回结果有了一定的认知,下面是本人的一些个人理解和观点,仅供大家参考。
一、统一反应结果是什么?
其实统一反应结果就是指一个类,通过这个类来对你controller层面代码返回的结果进行了统一封装,进行了规范化的统一返回,使你的代码更加的优雅和简介
二、全局异常类是什么?
全局异常类其实也是一个类,他会在代码出现了异常和错误的时候进行捕获并打印在网页上,如果没有全局异常类,会发现在代码出现问题的时候你的程序会停止,但是当存在了全局异常类的时候,如果代码出现了问题,会打印出错误并且程序不会停止
三、统一反应结果如何实现?
以下是个人写的代码,仅供简单的理解和参考练
代码如下(示例):
@Data public class GolbalResult<T> { Integer code; String msg; T data; GolbalResult(){ } GolbalResult(Integer code,String msg,T data){ this.code=code; this.msg=msg; this.data=data; } GolbalResult(Integer code,T data){ this.code=code; this.data=data; } GolbalResult(Integer code,String msg){ this.code=code; this.msg=msg; } public static GolbalResult<Void> success(){ return new GolbalResult<Void>(1,""); } public static<T> GolbalResult<T> success(T data){ return new GolbalResult<T>(1,data); } public static<T> GolbalResult<T> success(Integer code,String msg){ return new GolbalResult<T>(code,msg); } }
3.1、注意事项
(1)一个类想要是在体内使用泛型数据,这个类必须是泛型类
(2)在统一响应结果中一共会存在三个参数,code(状态码)、msg(描述信息)、data(状态码)
(3)注意Data注解,作用是生当前类的get和set方法,需要引入lombok的依赖
四.全局异常类如何实现?
代码如下(示例):
@RestControllerAdvice public class GolbalException { @ExceptionHandler public String exceptionHandler(Exception e){ System.out.println("已经进行全局异常捕获"+e); return "全局异常捕获,错误原因"+e.getMessage(); } }
个人编写的异常类,比较潦草,能够理解即可
4.1、注意事项
(1)RestController这个注解的作用是声明这个类是一个全局异常类,当程序出现异常 会通过这个类封装称为json类型的数据进行返回
(2)@ExceptionHandler注解在出现异常时会将异常的类型与这个注解方法的参数进行比较,匹配的话将会执行方法体
五、个人练习的pom依赖(参考)
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> </dependencies>
总结
个人随记,在学习完了springboot之后,编写了一个单体架构的项目,梳理了许多的知识,但是随着越来越深入会有很多的东西会不断的遗忘,所以开始写csdn,可以记录一些东西,同时我觉得对我个人也是有一些益处的,可以巩固和加深知识,因为是第一次写,内容和语言有所欠缺。希望大家多多包涵。