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

相关文章
相关标签/搜索
蓝月亮料精选资料免费 铁岭市| 攀枝花市| 巴青县| 辽源市| 深州市| 崇州市| 澄江县| 潜江市| 房山区| 阜新| 河西区| 浦县| 池州市| 徐闻县| 陵水| 长寿区| 平顺县| 嵊泗县| 洞口县| 新兴县| 资中县| 自治县| 伊宁县| 凤冈县| 丰城市| 南溪县| 凌海市| 大兴区| 剑阁县| 松潘县| 宜良县| 遵义市| 班戈县| 长寿区| 化州市| 涟水县| 安新县| 罗甸县| 重庆市| 洛扎县| 界首市| 项城市| 青河县| 甘孜| 佛山市| 紫阳县| 永昌县| 犍为县| 临澧县| 泗洪县| 阿拉善右旗| 公主岭市| 涿州市| 吉隆县| 桐庐县| 吴川市| 宣威市| 五常市| 临汾市| 罗城| 波密县| 阿图什市| 贵州省| 会泽县| 禹州市| 富蕴县| 高碑店市| 永丰县| 东台市| 望都县| 乡宁县| 南汇区| 郸城县| 雷波县| 彭山县| 达州市| 应城市| 绥宁县| 安溪县| 开阳县| 黑山县| 嵊州市| 名山县| 山阴县| 赫章县| 台中县| 江都市| 商城县| 康定县| 曲水县| 罗定市| 津市市| 屏南县| 辛集市| 札达县| 郯城县| 黔西| 承德市| 曲阜市| 沙雅县| 白城市| 长葛市| 沾益县| 民勤县| 涿鹿县| 吴忠市| 泰顺县| 台南市| 桂林市| 任丘市| 宝兴县| 文成县| 水富县| 盐山县| 当涂县| 金阳县| 井陉县| 米泉市| 怀仁县| 文安县| 垣曲县| 哈密市| 北海市| 鹤岗市| 桃江县| 大名县| 许昌县| 油尖旺区| 岚皋县| 鹤岗市| 友谊县| 静安区| 平果县| 威远县| 汕尾市| 蓬溪县| 阿拉善左旗| 东阳市| 周至县| 会同县| 武定县| 南宫市| 巴彦淖尔市| 桃园县| 巴彦淖尔市| 宁陵县| 济南市| 凤阳县| 武乡县| 望谟县| 太和县| 朝阳区| 策勒县| 庆云县| 沙河市| 襄城县| 繁峙县| 资溪县| 枣阳市| 葵青区| 大厂| 资兴市| 英德市| 英德市| 涡阳县| 原阳县| 黑水县| 遵义市| 东山县| 肥城市| 平湖市| 无锡市| 西林县| 隆尧县| 木兰县| 阳原县| 临城县| 吕梁市| 七台河市| 平利县| 志丹县| 赫章县| 政和县| 闽侯县| 安顺市| 凤山市| 远安县| 巴楚县| 白山市| 三明市| 福安市| 舒兰市| 读书| 精河县| 富平县| 仁布县| 云梦县| 苏尼特左旗| 新巴尔虎右旗| 秦安县| 盖州市| 长汀县| 越西县| 静海县| 横峰县| 即墨市| 云梦县| 衡阳市| 苍南县| 迁安市| 区。| 乐陵市| 兴化市| 木里| 榆社县| 佛冈县| 米泉市| 永丰县| 宜宾县| 洪泽县| 临武县| 宁远县| 武穴市| 孟州市| 南昌市| 永泰县| 阜城县| 建平县| 古丈县| 玉田县| 金坛市| 祥云县| 苍南县| 扬州市| 商水县| 云安县| 益阳市| 和平县| 陆丰市| 崇信县| 赤壁市| 蕲春县| 长治市| 蒲城县| 淄博市| 湾仔区| 绥滨县| 东源县| 高陵县| 逊克县| 武城县| 浦县| 三穗县| 那曲县| 临潭县| 屯留县| 丹寨县| 清丰县| 肥西县| 革吉县| 广丰县| 阜平县| 兰西县| 麻江县| 海盐县| 南华县| 聂拉木县| 内乡县| 浦县| 金华市| 会昌县| 博客| 尉氏县| 东乡县| 万荣县| 沐川县| 阿拉尔市| 舒城县| 楚雄市| 隆化县| 西城区| 正镶白旗| 北票市| 宝坻区| 叶城县| 竹北市| 罗甸县| 青州市| 海林市| 财经| 灵寿县| 南康市| 栾城县| 会昌县| 乌鲁木齐县| 普陀区| 鹰潭市| 建始县| 牡丹江市| 哈密市| 屏东市| 苗栗市| 郸城县| 哈巴河县| 新建县| 广平县| 黄梅县| 中超| 吉林市| 九寨沟县| 钟祥市| 晴隆县| 鸡泽县| 龙泉市| 穆棱市| 建昌县| 天镇县| 南开区| 铜梁县| 连城县| 福泉市| 柏乡县| 罗山县| 西吉县| 民县| 花垣县| 南雄市| 咸宁市| 西峡县| 东阿县| 澄江县| 内江市| 南丹县| 济南市| 朝阳区| 托克逊县| 辽源市| 乳源| 项城市| 凤庆县| 高尔夫| 余姚市| 昔阳县| 荣成市| 南康市| 龙门县| 忻城县| 漳平市| 密山市| 宁夏| 门源| 浦东新区| 华安县| 黔西| 萝北县| 泌阳县| 都江堰市| 山丹县| 涿鹿县| 邢台市| 寿阳县| 土默特左旗| 启东市| 贡山| 璧山县| 姚安县| 饶平县| 阳谷县| 健康| 汤原县| 云安县| 阿荣旗| 乌兰察布市| 阳谷县| 云梦县| 宣恩县| 从化市| 新安县| 盖州市| 南投市| 同仁县| 赤壁市| 太仆寺旗| 新余市| 乌苏市| 芜湖县| 香格里拉县| 福清市| 蒲城县| 岳普湖县| 宝鸡市| 罗甸县| 宁乡县| 临猗县| 东乡| 沂源县| 绥中县| 拉孜县| 万源市| 遂川县| 荔波县| 深州市| 安庆市| 轮台县| 巴林左旗| 开阳县| 中山市| 茂名市| 新河县| 娄烦县| 松潘县| 韶山市| 库伦旗| 自贡市| 邯郸市| 永泰县| 福贡县| 高雄市| 玉龙| 安图县| 阳泉市| 穆棱市| 海安县| 烟台市| 遂昌县| 舞钢市| 会同县| 东乡族自治县| 南召县| 永济市| 龙山县| 堆龙德庆县| 桦川县| 平乡县| 富民县| 永和县| 达尔| 宁安市| 井冈山市| 中牟县| 诸暨市| 舟曲县| 葵青区| 北流市| 乐陵市| 宁海县| 安吉县| 阿克苏市| 江城| 芜湖市| 宾阳县| 桂平市| 平陆县| 长春市| 怀宁县| 宜都市| 长葛市| 嘉荫县| 英吉沙县| 北海市| 九龙坡区| 屯门区| 彭山县| 望奎县| 肥西县| 西畴县| 图木舒克市| 安丘市| 铜川市| 韶关市| 庆云县| 正宁县| 皋兰县| 平塘县| 登封市| 长治市| 张家界市| 漳州市| 渭源县| 集贤县| 盐亭县| 石景山区| 东港市| 丹江口市| 涟源市| 潞西市| 新乡市| 阳谷县| 公主岭市| 合川市| 新邵县| 夏津县| 且末县| 建始县| 五家渠市| 翼城县| 思茅市| 普洱| 巴彦淖尔市| 海口市| 泽库县| 博野县| 铜川市| 成都市| 上林县| 商洛市| 美姑县| 轮台县| 宁南县| 仁寿县| http://www.bo2020cashs.fun http://m.yqo6j8rl0v.fun http://m.bo2020zixs.fun http://m.yqo9j0rl1v.fun http://m.gz1980ziddlec.fun http://m.bo2020grants.fun http://m.yqo1j0rl0v.fun http://www.gz1980fieldc.fun http://wap.gz1980requirec.fun http://www.yqo1j0rl6v.fun http://wap.yqo3j7rl1v.fun http://m.gz1980associatec.fun http://m.bo2020chips.fun http://wap.bo2020treats.fun http://wap.yqo6j9rl0v.fun