springboot 快速開發的定製補充

增強 SpringBoot 快速開發工具

項目地址:https://gitee.com/sanri/web-ui
優點:這是一個 web 通用配置的組件,即插即用,可用於新項目或私活。是對 SpringBoot 快速開發的一種補充,它內置了大量的配置來簡化開發,遵循約定高於配置原則。

它解決的問題:

  • 固定了輸入輸出格式
  • 對於 Controller 中的返回不用關心包裝類型,返回你所需要的類型就可以了,對於 insert 單表操作可以直接返回 void
  • 如果項目中出現業務操作不符合或調用第三方出錯,可使用異常或斷言拋出,我們將攔截成統一格式返回
  • 自帶參數空格過濾功能,還可以定義特殊字符和諧
  • 支持校驗器,已經幫你設置好了兩個 group
  • 支持大文件分片上傳

發現BUG可以提Issue,可以給我發郵件,可以加我QQ,可以進9420技術羣討論.

作者QQ: 2441719087

作者郵箱: [email protected]

9420 技術交流羣: 645576465

作者微信:sanri1993-
在這裏插入圖片描述

項目功能

我新開的一個項目,總結了以往 4 年的開發經驗所得,它具有的功能有

  • 固定了輸入輸出格式

    // 普通輸出格式
    @Data
    public class ResponseDto<T> implements Serializable {
        // 0 字符串表示成功,否則失敗
        private String code = "0";
        private String message;
        private T data;
    }
    // 分頁輸出格式,是包裹在普通輸出格式中的,PageResponseDto 做爲 data 屬性
    @Data
    public class PageResponseDto<T> {
        private List<T> rows;
        private Integer total;
    }
    
    // 分頁輸入格式 
    @Setter
    public class PageParam {
        private String pageNo;
        private String pageSize;
    }
  • 對於 Controller 中的返回不用關心包裝類型,返回你所需要的類型就可以了,對於 insert 單表操作可以直接返回 void

    示例一:

    @PostMapping("/insertUser")
    public void insertUser(User user){
        xxxService.insert(user);
    }

    它將會返回這樣的數據結構

    {
        "code":"0",
        "message":"ok",
        "data":null
    }

    示例二:

    @GetMapping("/queryUserById")
    public User queryUserById(Integer userId){
        xxxService.queryUserById(userId);
    }

    它將會返回這樣的數據結構

    {
        "code":"0",
        "message":"ok",
        "data":{
            "userId":1,
            "username":"9420"
        }
    }

    示例三:

    對於分頁數據的處理

    @GetMapping("/queryUserPage")
    public PageResponseDto<User> pageQuery(PageParam pageParam,Map<String,String> queryParams){
        PageHelper.startPage(pageParam.getPageNo(),pageParam.getPageSize());
        Page page = (Page) xxxService.pageQuery(queryParams);
        List result = page.getResult();
        long total = page.getTotal();
        return new PageResponseDto(result,total);
    }

    它將會返回這樣的數據結構

    {
        "code":"0",
        "message":"ok",
        "data":{
            "total":100,
            "rows":[{...},{...}]
        }
    }
  • 如果項目中出現業務操作不符合或調用第三方出錯,可使用異常拋出,我們將攔截成統一格式返回

    示例一:

    if(業務條件不滿足){
        throw BusinessException.create("業務提示信息");
    }

    它將會返回這樣的數據結構,code 是隨機生成的

    {
        "code":"234234",
        "message":"業務提示信息",
        "data":null
    }

    示例二:

    自定義 code 示例方法一

    if(業務條件不滿足){
        throw BusinessException.create("E007","業務提示信息");
    }

    它將會返回這樣的數據結構

    {
        "code":"E007",
        "message":"業務提示信息",
        "data":null
    }

    示例三:

    自定義 code 示例方法二

    // 配置異常代碼 
    public enum  SystemMessage implements ExceptionCause<BusinessException> {
        SIGN_ERROR(4005,"簽名錯誤,你的簽名串爲 [%s]"),;
        ResponseDto responseDto = new ResponseDto();
    
        private SystemMessage(int returnCode,String message){
            responseDto.setCode(returnCode+"");
            responseDto.setMessage(message);
        }
    
        public BusinessException exception(Object...args) {
            return BusinessException.create(this,args);
        }
    }

    使用異常

    if(業務條件不滿足){
        throw SystemMessage.SIGN_ERROR.exception("簽名串");
    }

    它將會返回這樣的數據結構

    {
        "code":"4005",
        "message":"簽名錯誤,你的簽名串爲 [簽名串]",
        "data":null
    }
  • 你以爲它就這麼點能耐嗎,它還自帶參數空格過濾功能,還可以定義特殊字符和諧

    你只需要注入一個處理器,它就能工作,注入方式如下

    @Bean("paramHandler")
    public Function paramHandler(){
        return param -> param.replace("<","《");
    }
  • 自帶了日期轉化(輸入)功能,可以支持的日期格式有

    final String[] parsePatterns = new String[]{"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm:ss.S"};

    現在是固定這三種格式 ,後面會放開讓使用者自己配置

  • 支持校驗器,已經幫你設置好了兩個 group ,直接使用即可

    public interface Insert {
    }
    public interface Update {
    }

使用說明

引入包或下載 jar 包文件

<dependency>
    <groupId>com.sanri.web</groupId>
    <artifactId>web-ui</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

開啓快速開發

@EnableWebUI 

一點小推廣

創作不易,希望可以支持下我的開源軟件,及我的小工具,歡迎來 gitee 點星,fork ,提 bug 。

Excel 通用導入導出,支持 Excel 公式
博客地址:https://blog.csdn.net/sanri1993/article/details/100601578
gitee:https://gitee.com/sanri/sanri-excel-poi

使用模板代碼 ,從數據庫生成代碼 ,及一些項目中經常可以用到的小工具
博客地址:https://blog.csdn.net/sanri1993/article/details/98664034
gitee:https://gitee.com/sanri/sanri-tools-maven

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章