<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      統一返回對象封裝和統一異常捕獲封裝springboot starter

      好久沒有更新文章了,高齡開發沒什么技術,去了外包公司后沒怎么更新文章了。今天分享下統一處理starter,相信開發web系統的時候都是會涉及到前后端的交互,而后端返回數據的時候一般都會統一封裝一個返回對象和統一處理異常,一般情況下都是在controller的每個方法中調用封裝的對象,把相應的數據塞到data字段,然后返回給前端。而異常處理則是拋出某個業務異常,然后利用spring切面進行攔截處理。每個項目都需要做這些重復的動作,所以我把這個處理封裝成了starter,下面介紹已下這個starter的使用,最后給出git庫供大家學習交流。

      添加依賴

      添加統一處理依賴

      <dependency>  
          <groupId>io.gitee.javalaoniu</groupId>  
          <artifactId>jud-springboot-starter</artifactId>  
          <version>0.0.1</version>  
      </dependency>
      

      啟用統一處理

      添加 @EnableUnifiedDisposal 注解

      import io.gitee.javalaoniu.jud.annotation.EnableUnifiedDisposal;  
      import org.springframework.boot.SpringApplication;  
      import org.springframework.boot.autoconfigure.SpringBootApplication;  
        
      @EnableUnifiedDisposal  
      @SpringBootApplication  
      public class JudDemoApplication {  
          public static void main(String[] args) {  
              SpringApplication.run(JudDemoApplication.class, args);  
          }  
      }
      

      攔截的處理

      像平常一樣返回數據即可,不需要做其它

      import io.gitee.javalaoniu.jud.annotation.IgnoreResponseAdvice;  
      import io.gitee.javalaoniu.jud.common.Result;  
      import io.gitee.javalaoniu.jud.exception.BusinessException;  
      import io.gitee.javalaoniu.jud.exception.ExceptionCode;  
      import org.springframework.web.bind.annotation.GetMapping;  
      import org.springframework.web.bind.annotation.RestController;  
        
      import java.util.ArrayList;  
      import java.util.List;  
        
      @RestController  
      public class DemoController {  
        
          @GetMapping("test1")  
          public String stringTest() {  
              return "hello";  
              // {"code":200,"data":"hello","succ":true,"ts":1673943672244}
          }  
        
          @GetMapping("test2")  
          public String stringNullTest() {  
              return null;  
              // {"code":200,"data":"","succ":true,"ts":1673943691844}
          }  
        
          @GetMapping("test3")  
          public Object objectEntityTest() {  
              DemoEntity demoEntity = new DemoEntity();  
              demoEntity.setName("張三");  
              demoEntity.setAge(50);  
              demoEntity.setSex(false);  
              demoEntity.setSalary(4500000001542.26);  
              return demoEntity;  
              // {"succ":true,"ts":1673943709119,"data":{"name":"張三","age":50,"sex":false,"salary":4.50000000154226E12},"code":200,"msg":null}
          }  
        
          @GetMapping("test4")  
          public Object objectNotNullTest() {  
              return "hello Object";  
              // {"code":200,"data":"hello Object","succ":true,"ts":1673943726435}
          }  
        
          @GetMapping("test5")  
          public Object objectNullTest() {  
              return null;  
              // 啥也沒返回,但是如果配置了json轉換器的話會返回:{"code":200,"data":null,"succ":true,"ts":1673943726435}
          }  
        
          @GetMapping("test6")  
          public List<DemoEntity> listTest() {  
              DemoEntity demoEntity2 = new DemoEntity();  
              demoEntity2.setName("張三");  
              demoEntity2.setAge(50);  
              demoEntity2.setSex(false);  
              demoEntity2.setSalary(4500000001542.26);  
        
              DemoEntity demoEntity = new DemoEntity();  
              demoEntity.setName("張三");  
              demoEntity.setAge(50);  
              demoEntity.setSex(false);  
              demoEntity.setSalary(4500000001542.26);  
        
              List<DemoEntity> list = new ArrayList<>();  
              list.add(demoEntity);  
              list.add(demoEntity2);  
        
              return list;  
              // {"succ":true,"ts":1673943797079,"data":[{"name":"張三","age":50,"sex":false,"salary":4.50000000154226E12},{"name":"張三","age":50,"sex":false,"salary":4.50000000154226E12}],"code":200,"msg":null}
          }  
        
          @GetMapping("test7")  
          public List<String> listNullTest() {  
              return null;  
              // {"succ":true,"ts":1673943819382,"data":null,"code":200,"msg":null}
          }  
        
          @GetMapping("test8")  
          public Result resultTest() {  
              DemoEntity demoEntity = new DemoEntity();  
              demoEntity.setName("張三");  
              demoEntity.setAge(50);  
              demoEntity.setSex(false);  
              demoEntity.setSalary(4500000001542.2656564545);  
              return Result.success(demoEntity);  
              // {"succ":true,"ts":1673943832081,"data":{"name":"張三","age":50,"sex":false,"salary":4.500000001542266E12},"code":200,"msg":null}
          }  
        
          @IgnoreResponseAdvice  
          @GetMapping("test9")  
          public String ignoreResponseTest() {  
              return "IgnoreResponseAdvice";  
              // IgnoreResponseAdvice
          }  
        
          @GetMapping("test10")  
          public String businessExceptionTest() {  
              throw new BusinessException(ExceptionCode.EXCEPTION);  
              // {"succ":false,"ts":1673943862588,"data":null,"code":500,"msg":"服務器開小差,請稍后再試(Internal Server Error)"}
          }  
      }
      

      不攔截處理

      對不需要統一處理的controller或者方法使用下面注解

      @IgnoreResponseAdvice  
      @GetMapping("test9")  
      public String ignoreResponseTest() {  
      	// 在方法上使用,直接返回IgnoreResponseAdvice字符串給前端
          return "IgnoreResponseAdvice";  
      }
      

      可以看到,使用統一處理starter后,統一返回對象和統一異常處理不需要自己在處理,非常方便。
      git倉庫地址:https://gitee.com/javalaoniu/javalaoniu-jud

      posted @ 2023-01-17 16:53  Java夜未眠  閱讀(670)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 隆安县| 韩国无码AV片午夜福利| 亚洲AVAV天堂AV在线网阿V| 动漫AV纯肉无码AV电影网| 18禁免费无码无遮挡网站| 久久精品丝袜高跟鞋| 99久久国产福利自产拍| 国产精品亚洲综合久久小说| 手机无码人妻一区二区三区免费 | 国产精品白丝久久av网站| 惠来县| 精品一卡2卡三卡4卡乱码精品视频| 欧美精品国产综合久久| 亚洲日本VA午夜在线电影| 久久热这里这里只有精品| 国产精品亚洲精品日韩已满十八小| 加勒比无码人妻东京热| 延长县| 国产四虎永久免费观看| 免费看欧美日韩一区二区三区| 亚洲欧美偷国产日韩| 亚洲AV福利天堂在线观看| 日韩精品亚洲专区在线观看| 乱人伦人妻系列| 精品无码一区二区三区电影| 南雄市| 国产午夜福利在线视频| 婷婷综合缴情亚洲| 亚洲精品久久久中文字幕痴女 | 国产一级r片内射免费视频| 国产初高中生视频在线观看| 国产亚洲一区二区三区av| 国产精品丝袜一区二区三区| 国产精品一区二区不卡91| 永久免费av网站可以直接看的 | 天天摸天天做天天爽水多| 亚洲乱码中文字幕小综合| 成人免费A级毛片无码片2022| 大帝AV在线一区二区三区| 少妇被日自拍黄色三级网络| 国产精品熟妇视频国产偷人|