<menu id="meoaa"><u id="meoaa"></u></menu>
<input id="meoaa"></input>
  • <menu id="meoaa"><u id="meoaa"></u></menu><menu id="meoaa"></menu>
    <input id="meoaa"><u id="meoaa"></u></input>
  • <object id="meoaa"></object>
    <nav id="meoaa"></nav>
  • <menu id="meoaa"></menu>
    <menu id="meoaa"><small id="meoaa"></small></menu><input id="meoaa"><tt id="meoaa"></tt></input>
  • <input id="meoaa"></input>
  • 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年马会全年资料天下彩天空彩票与你同行香港旧版免费资料大全网 吉木萨尔县| 屯留县| 石棉县| 河南省| 柳河县| 洛南县| 滦平县| 教育| 高青县| 望江县| 阜平县| 巩义市| 抚宁县| 郴州市| 井陉县| 绥棱县| 青岛市| 宜阳县| 周宁县| 隆安县| 肥东县| 沙洋县| 邢台市| 新丰县| 读书| 邮箱| 高州市| 舟曲县| 江陵县| 革吉县| 利辛县| 阳谷县| 高唐县| 崇明县| 弋阳县| 宁河县| 米易县| 于都县| 高碑店市| 阳原县| 洛隆县| 观塘区| 巴南区| 志丹县| 滦南县| 邢台县| 吉林省| 化隆| 长阳| 齐河县| 老河口市| 平塘县| 资中县| 福清市| 和政县| 崇明县| 泾阳县| 凉城县| 娄底市| 龙州县| 简阳市| 临澧县| 沂源县| 屏边| 光泽县| 旬阳县| 南充市| 阿拉善左旗| 西青区| 邵东县| 河源市| 海淀区| 海淀区| 固安县| 朝阳区| 谢通门县| 黔西县| 连城县| 杭锦后旗| 白城市| 本溪市| 巧家县| 宁都县| 商城县| 定边县| 林芝县| 府谷县| 泸西县| 玛多县| 铜川市| 松潘县| 岚皋县| 皮山县| 从江县| 建阳市| 旅游| 三江| 房产| 平南县| 柏乡县| 永清县| 长春市| 手游| 镇康县| 许昌市| 新宁县| 沙河市| 营山县| 同江市| 故城县| 来宾市| 文安县| 新密市| 县级市| 阿瓦提县| 哈巴河县| 建昌县| 定州市| 凤山市| 儋州市| 桂阳县| 屯留县| 琼结县| 唐山市| 新郑市| 麻阳| 岑巩县| 嘉峪关市| 阜康市| 灵寿县| 陈巴尔虎旗| 聂拉木县| 平顶山市| 聂拉木县| 兖州市| 寻乌县| 涿州市| 揭西县| 南召县| 舟曲县| 闽清县| 普定县| 石柱| 太白县| 昂仁县| 勐海县| 昌都县| 周至县| 平安县| 内乡县| 龙井市| 阿尔山市| 西林县| 应用必备| 上饶市| 临沧市| 乌苏市| 阳谷县| 广水市| 集安市| 灌云县| 张家港市| 肇东市| 乌海市| 左云县| 名山县| 桐庐县| 大荔县| 怀集县| 怀来县| 衡阳市| 太白县| 屏东县| 萝北县| 宜宾市| 广东省| 蓬莱市| 河南省| 普兰店市| 洛扎县| 富平县| 来安县| 颍上县| 盐池县| 岳西县| 蕉岭县| 平安县| 兰西县| 宁安市| 嘉善县| 大连市| 扎鲁特旗| 古丈县| 阜宁县| 红桥区| 年辖:市辖区| 衡阳市| 邯郸县| 永寿县| 利津县| 东莞市| 云龙县| 工布江达县| 安图县| 南陵县| 磐石市| 庆城县| 浦县| 肃宁县| 呼伦贝尔市| 南皮县| 固始县| 河北区| 舞阳县| 石楼县| 玉山县| 化德县| 威海市| 濮阳市| 重庆市| 咸阳市| 开江县| 洪湖市| 宜昌市| 白山市| 和田市| 怀化市| 探索| 阿图什市| 长丰县| 罗平县| 明水县| 当阳市| 西昌市| 万全县| 北辰区| 克拉玛依市| 汉中市| 陇西县| 金乡县| 临颍县| 二手房| 红安县| 曲沃县| 修水县| 那坡县| 开远市| 梅州市| 峨边| 涪陵区| 伊宁县| 越西县| 浏阳市| 丰城市| 江孜县| 安溪县| 华亭县| 禹州市| 涡阳县| 黄平县| 澎湖县| 河南省| 隆子县| 财经| 大新县| 深水埗区| 安龙县| 黑河市| 元氏县| 鹿泉市| 桃江县| 连山| 枣阳市| 海门市| 麻栗坡县| 双城市| 宣威市| 和顺县| 东光县| 高淳县| 营口市| 鲜城| 澄迈县| 太康县| 阜南县| 东乌| 讷河市| 永仁县| 龙岩市| 大邑县| 额尔古纳市| 新津县| 峨边| 蒙自县| 肃北| 上思县| 绵阳市| 阳西县| 襄樊市| 长乐市| 临漳县| 平安县| 包头市| 安平县| 水城县| 三门县| 资阳市| 共和县| 临漳县| 佳木斯市| 大埔县| 江津市| 双流县| 封丘县| 临城县| 江津市| 定远县| 拉孜县| 建平县| 梅州市| 垦利县| 吉水县| 清苑县| 汪清县| 桃江县| 乐业县| 西昌市| 聂拉木县| 临高县| 伽师县| 射洪县| 樟树市| 紫云| 兰溪市| 罗甸县| 吉水县| 曲周县| 卓尼县| 凤台县| 六枝特区| 刚察县| 基隆市| 隆德县| 萨嘎县| 德昌县| 仁怀市| 八宿县| 纳雍县| 铁岭县| 府谷县| 香河县| 滁州市| 许昌市| 洱源县| 翁牛特旗| 商洛市| 洱源县| 台南市| 黔东| 临高县| 乌鲁木齐市| 台北市| 昌邑市| 平度市| 甘德县| 永顺县| 冀州市| 平远县| 东乡| 手游| 墨竹工卡县| 淮安市| 阿拉善盟| 民丰县| 文安县| 班玛县| 肇庆市| 台州市| 墨玉县| 金溪县| 阿坝| 齐齐哈尔市| 黎城县| 镇坪县| 宝山区| 邻水| 璧山县| 乃东县| 水富县| 泾源县| 汕尾市| 宁乡县| 缙云县| 渭源县| 尼勒克县| 重庆市| 余姚市| 潞西市| 平和县| 龙陵县| 三江| 德令哈市| 卢龙县| 富川| 屏东市| 松桃| 股票| 韩城市| 太康县| 兴隆县| 榆林市| 长垣县| 五寨县| 增城市| 剑川县| 五台县| 万载县| 济阳县| 南召县| 自贡市| 同心县| 孟连| 陆良县| 泸州市| 罗定市| 图们市| 东丰县| 出国| 海安县| 湘乡市| 宁晋县| 祁阳县| 黄陵县| 嘉荫县| 安徽省| 湖南省| 沂源县| 望奎县| 阳曲县| 石河子市| 迭部县| 竹溪县| 焉耆| 黑龙江省| 舟曲县| 竹山县| 康乐县| 壶关县| 唐河县| 邹城市| 夏河县| 怀仁县| 平遥县| 长治县| 类乌齐县| 彭州市| 枞阳县| 卓尼县| 遵义县| 陈巴尔虎旗| 乌审旗| 灌阳县| 岗巴县| 二连浩特市| 大埔区| 九台市| 沙洋县| 禹城市| 天等县| 通海县| 桃江县| 淮北市| 中超| 象州县| 大宁县| 元谋县| 辽源市| 东方市| 同仁县| 郎溪县| 神农架林区| 天峻县| 榆社县| 亳州市| 吴江市| 福安市| 阳信县| 抚州市| 岱山县| 土默特左旗| 江源县| 苗栗县| 微山县| 腾冲县| 铁岭市| 许昌市| 边坝县| 明光市| 信丰县| 周宁县| 无锡市| 翼城县| 米泉市| 新竹市| 潼南县| 茌平县| 崇信县| 灵璧县| 临沧市| 即墨市| http://www.bo2020adds.fun http://www.gz1980estizatec.fun http://wap.bo2020reviews.fun http://www.gz1980cottonc.fun http://wap.gz1980winec.fun http://wap.bo2020packs.fun http://wap.yqo0j9rl5v.fun http://www.gz1980usec.fun http://www.bo2020hears.fun http://wap.bo2020zetals.fun http://wap.yqo2j1rl3v.fun http://www.gz1980positionc.fun http://www.bo2020plots.fun http://wap.bo2020flights.fun http://m.yqo8j5rl5v.fun