增強 SpringBoot 快速開發工具 項目地址: "https://gitee.com/sanri/web ui" 優點:這是一個 web 通用配置的組件,即插即用,可用於新項目或私活。是對 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