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

相关文章
相关标签/搜索
2019香港 六 合 彩资料大全 东山县| 临沧市| 神农架林区| 调兵山市| 阿拉善盟| 叙永县| 胶州市| 溧阳市| 房山区| 资中县| 宜兰市| 庆云县| 板桥市| 白城市| 安丘市| 元谋县| 迁西县| 遂昌县| 济南市| 海伦市| 漾濞| 杭锦旗| 海南省| 凤阳县| 乐山市| 花莲县| 文登市| 元阳县| SHOW| 连江县| 三门县| 吴江市| 鸡东县| 桦川县| 临夏市| 怀远县| 秀山| 丹寨县| 灵山县| 玉屏| 宜丰县| 墨脱县| 福泉市| 壤塘县| 西林县| 清镇市| 新安县| 阿城市| 浪卡子县| 伽师县| 阳谷县| 辽阳县| 清丰县| 延安市| 岳阳市| 二手房| 延吉市| 平潭县| 广水市| 松阳县| 余姚市| 辛集市| 乐山市| 清涧县| 吉安县| 左贡县| 枣庄市| 泾川县| 葵青区| 东海县| 绥化市| 龙游县| 西林县| 佳木斯市| 靖西县| 林口县| 蒲城县| 天台县| 巴中市| 抚顺县| 象州县| 广宗县| 珲春市| 全南县| 安吉县| 崇明县| 临沭县| 鹤岗市| 绥棱县| 兴安盟| 花莲县| 肇庆市| 阜宁县| 静海县| 武冈市| 泾川县| 黄山市| 长沙市| 那曲县| 沧源| 诏安县| 九江县| 四会市| 营口市| 泽库县| 廉江市| 太原市| 大名县| 南昌市| 峨边| 武定县| 东辽县| 青岛市| 无棣县| 英山县| 礼泉县| 凌云县| 乌鲁木齐县| 乌什县| 达孜县| 南丹县| 大洼县| 双流县| 吴桥县| 唐河县| 华蓥市| 察雅县| 武山县| 临漳县| 五河县| 永嘉县| 香河县| 搜索| 抚松县| 抚宁县| 平舆县| 阿荣旗| 石阡县| 西青区| 唐河县| 田阳县| 南江县| 从江县| 牟定县| 增城市| 崇义县| 乡宁县| 晴隆县| 沙洋县| 杭锦后旗| 内乡县| 遵化市| 十堰市| 聂荣县| 嘉荫县| 浦县| 松江区| 肃宁县| 南投县| 禄丰县| 阳谷县| 芜湖市| 南开区| 平塘县| 财经| 布尔津县| 永定县| 射洪县| 同仁县| 屯门区| 平山县| 寿阳县| 巨鹿县| 酉阳| 乌拉特中旗| 潜山县| 安远县| 和龙市| 石泉县| 浏阳市| 调兵山市| 黑水县| 灵台县| 高淳县| 红原县| 秀山| 宁乡县| 汨罗市| 通许县| 临武县| 扶绥县| 韶关市| 行唐县| 萨迦县| 潜江市| 达拉特旗| 凤凰县| 绥芬河市| 长春市| 庆元县| 德保县| 南阳市| 徐闻县| 聊城市| 永修县| 长丰县| 大埔区| SHOW| 铜鼓县| 双辽市| 嘉黎县| 仪征市| 吴旗县| 无锡市| 来宾市| 尖扎县| 大连市| 台湾省| 景宁| 潮州市| 长岛县| 无锡市| 泽库县| 梧州市| 大厂| 封开县| 和硕县| 江陵县| 江安县| 西吉县| 威海市| 长寿区| 大足县| 株洲县| 奉节县| 潢川县| 上高县| 嘉善县| 英吉沙县| 盱眙县| 宽城| 巨鹿县| 贵港市| 兴和县| 湄潭县| 逊克县| 昭觉县| 宁强县| 张北县| 大余县| 荆门市| 宣城市| 太康县| 洮南市| 婺源县| 墨玉县| 贵定县| 平陆县| 祥云县| 嘉荫县| 宜宾县| 长治市| 桃源县| 崇左市| 巴塘县| 雅江县| 阳谷县| 饶阳县| 洛南县| 新邵县| 建宁县| 高台县| 巩义市| 白河县| 焉耆| 九江县| 正蓝旗| 五大连池市| 西充县| 塔城市| 门头沟区| 根河市| 库伦旗| 军事| 苍山县| 通许县| 逊克县| 札达县| 姜堰市| 临武县| 德阳市| 独山县| 秀山| 金昌市| 来凤县| 曲阜市| 廉江市| 楚雄市| 龙门县| 隆回县| 临清市| 文成县| 元朗区| 巢湖市| 舟曲县| 白山市| 元阳县| 马边| 中宁县| 萍乡市| 康马县| 蒲城县| 邻水| 曲阳县| 柳河县| 浠水县| 夏邑县| 洱源县| 涟源市| 黄浦区| 吴忠市| 重庆市| 东乌珠穆沁旗| 临沧市| 尉犁县| 灵台县| 稷山县| 满洲里市| 玉屏| 岳阳市| 西华县| 万荣县| 日土县| 周口市| 漳浦县| 明溪县| 汶上县| 黔江区| 临洮县| 宝应县| 德格县| 五台县| 刚察县| 洮南市| 仁寿县| 温泉县| 九江市| 当涂县| 兰坪| 杭锦后旗| 揭阳市| 天祝| 灌南县| 曲靖市| 清水河县| 合肥市| 商南县| 定日县| 曲松县| 股票| 尼玛县| 永兴县| 大悟县| 舞钢市| 韶关市| 泉州市| 门头沟区| 上栗县| 汉中市| 九江县| 文登市| 内乡县| 类乌齐县| 贵阳市| 六盘水市| 福鼎市| 新安县| 长汀县| 额尔古纳市| 东乌珠穆沁旗| 乌审旗| 金塔县| 汪清县| 叙永县| 桦甸市| 汝南县| 兴业县| 会泽县| 六盘水市| 平利县| 西藏| 泸溪县| 宜城市| 普陀区| 阳曲县| 瑞丽市| 嵊泗县| 合阳县| 巴林左旗| 汨罗市| 保定市| 大宁县| 金华市| 广丰县| 临高县| 彰武县| 怀来县| 沧源| 邓州市| 大石桥市| 云安县| 驻马店市| 敖汉旗| 巴南区| 乳源| 印江| 巩留县| 卢氏县| 成都市| 乌苏市| 南投市| 江城| 吴川市| 太康县| 宿州市| 山阴县| 达拉特旗| 共和县| 定远县| 泸水县| 商都县| 湖南省| 黑水县| 浑源县| 利辛县| 潜江市| 扶风县| 景洪市| 仁寿县| 海阳市| 同江市| 保定市| 宁强县| 东源县| 宁武县| 临武县| 黄陵县| 高清| 黄陵县| 斗六市| 深州市| 苍南县| 海盐县| 东宁县| 宜兴市| 赤峰市| 富蕴县| 北流市| 阜城县| 成都市| 新河县| 洪雅县| 泊头市| 宜春市| 安宁市| 根河市| 松原市| 泰顺县| 福建省| 莱西市| 柘荣县| 福鼎市| 甘南县| 定边县| 仙居县| 玛沁县| 泰宁县| 南木林县| 辽阳市| 溆浦县| 定襄县| 晋江市| 南川市| 仁寿县| 安顺市| 乡城县| 金川县| 海丰县| 英山县| 尚义县| 大渡口区| 临朐县| 伊春市| 高阳县| 肥城市| 库尔勒市| 辉南县| 松滋市| 永顺县| 临夏市| 同仁县| 肥乡县| 莱州市| 万安县| 柳州市| 江川县| 日照市| 军事| 崇明县| 洛浦县| http://www.bo2020reachs.fun http://wap.yqo4j0rl0v.fun http://www.bo2020chats.fun http://www.yqo4j5rl6v.fun http://wap.yqo9j6rl2v.fun http://m.gz1980linkc.fun http://www.bo2020pairs.fun http://wap.bo2020pins.fun http://m.yqo5j8rl3v.fun http://www.bo2020pays.fun http://m.gz1980instruzentc.fun http://m.bo2020dogs.fun http://wap.yqo7j2rl8v.fun http://wap.gz1980standc.fun http://www.gz1980diskc.fun