All Projects → gnanquanmama → Tropical Fish

gnanquanmama / Tropical Fish

Licence: mit
Pragmatic 风格的 Java EE 后端开发脚手架,开箱即用。基于 SpringBoot,技术选型采用主流的框架(Mybatis-Plus,Redisson,Xxl-job,Swagger)。项目特点:自定义查询语法, 可以自由组装查询条件查询数据,配合代码生成模块,提高研发效率;自定义 service 方法级别的文档生成规则,在业务方法增加必要的注解,可生成方法调用树,快速把握复杂代码业务逻辑。

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Tropical Fish

Springboot Templates
springboot和dubbo、netty的集成,redis mongodb的nosql模板, kafka rocketmq rabbit的MQ模板, solr solrcloud elasticsearch查询引擎
Stars: ✭ 100 (-29.58%)
Mutual labels:  swagger, dubbo, springboot
Bus
Bus 是一个基础框架、服务套件,它基于Java8编写,参考、借鉴了大量已有框架、组件的设计,可以作为后端服务的开发基础中间件。代码简洁,架构清晰,非常适合学习使用。
Stars: ✭ 253 (+78.17%)
Mutual labels:  swagger, dubbo, springboot
Ruoyi Cloud
(RuoYi)官方仓库 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统
Stars: ✭ 160 (+12.68%)
Mutual labels:  swagger, springboot, zipkin
Springboot
SpringBoot 整合各类框架和应用
Stars: ✭ 54 (-61.97%)
Mutual labels:  swagger, dubbo, springboot
Spring Boot Plus
🔥 Spring-Boot-Plus is a easy-to-use, high-speed, high-efficient,feature-rich, open source spring boot scaffolding. 🚀
Stars: ✭ 2,198 (+1447.89%)
Mutual labels:  swagger, springboot, generator
Spring Boot Quick
🌿 基于springboot的快速学习示例,整合自己遇到的开源框架,如:rabbitmq(延迟队列)、Kafka、jpa、redies、oauth2、swagger、jsp、docker、spring-batch、异常处理、日志输出、多模块开发、多环境打包、缓存cache、爬虫、jwt、GraphQL、dubbo、zookeeper和Async等等📌
Stars: ✭ 1,819 (+1180.99%)
Mutual labels:  swagger, dubbo, springboot
Node Typescript Mongodb
node js typescript mongodb express generator yo
Stars: ✭ 96 (-32.39%)
Mutual labels:  swagger, generator
Superman
Superman是什么:构建Java 高级开发技术的知识体系,从基础不断打怪升级成为超人之路(更新中.......)
Stars: ✭ 106 (-25.35%)
Mutual labels:  dubbo, springboot
Myth
Reliable messages resolve distributed transactions
Stars: ✭ 1,470 (+935.21%)
Mutual labels:  dubbo, springboot
Ssm Demo
🍌Spring+SpringMVC+Mybatis+easyUI实现简单的后台管理系统
Stars: ✭ 1,639 (+1054.23%)
Mutual labels:  dubbo, springboot
Javacore
Java程序员所需要掌握的核心知识: 集合框架&JVM机制&多线程与并发框架&网络协议&Spring&Dubbo&MySQL&微服务等;希望胖友小手一抖,右上角来个 Star,感恩 1024
Stars: ✭ 73 (-48.59%)
Mutual labels:  dubbo, springboot
Zeusspring
基于Spring Boot 2.0的前后端分离的快速开发平台,此仓库是后台部分; 前台:Vue+Element 后台:Spring Boot 2.0/Spring Security/JWT/Spring Data JPA+Mybatis-Plus/Redis/分布式限流/同步锁/验证码/动态权限管理 数据权限 工作流 代码生成 日志记录 第三方社交账号、短信登录
Stars: ✭ 117 (-17.61%)
Mutual labels:  dubbo, springboot
X Admin
致力于快速开发中小型后台管理系统项目模板(更新中......)
Stars: ✭ 123 (-13.38%)
Mutual labels:  dubbo, springboot
Api Client Generator
Angular REST API client generator from Swagger YAML or JSON file with camel case settigs
Stars: ✭ 92 (-35.21%)
Mutual labels:  swagger, generator
Jeeplatform
一款企业信息化开发基础平台,拟集成OA(办公自动化)、CMS(内容管理系统)等企业系统的通用业务功能 JeePlatform项目是一款以SpringBoot为核心框架,集ORM框架Mybatis,Web层框架SpringMVC和多种开源组件框架而成的一款通用基础平台,代码已经捐赠给开源中国社区
Stars: ✭ 1,285 (+804.93%)
Mutual labels:  dubbo, springboot
Openapi Mock Generator
Progressive Web App for generating mocked data from an OpenAPI specification
Stars: ✭ 72 (-49.3%)
Mutual labels:  swagger, generator
Ibase4j
Spring,SpringBoot 2.0,SpringMVC,Mybatis,mybatis-plus,motan/dubbo分布式,Redis缓存,Shiro权限管理,Spring-Session单点登录,Quartz分布式集群调度,Restful服务,QQ/微信登录,App token登录,微信/支付宝支付;日期转换、数据类型转换、序列化、汉字转拼音、身份证号码验证、数字转人民币、发送短信、发送邮件、加密解密、图片处理、excel导入导出、FTP/SFTP/fastDFS上传下载、二维码、XML读写、高精度计算、系统配置工具类等等。
Stars: ✭ 1,548 (+990.14%)
Mutual labels:  dubbo, springboot
Xc Spring Cloud Alibaba
spring cloud alibaba(2.2.1最新版)+nacos+dubbo+gateWay+sentinel+rocketmq+(pgsql/mysql8.0的json支持)+ignite集成可用于docker分布式框架+分布式自动化任务+mybatis多数据源+seate+ shardingSphere分布式分库事务解决方案
Stars: ✭ 131 (-7.75%)
Mutual labels:  dubbo, springboot
Laravel Swagger
Auto generates the swagger documentation of a laravel project based on best practices and simple assumptions
Stars: ✭ 129 (-9.15%)
Mutual labels:  swagger, generator
Sw2dts
Generates TypeScript definition file(d.ts) from swagger.json for edge cases.
Stars: ✭ 132 (-7.04%)
Mutual labels:  swagger, generator

Tropical Fish

Pragmatic 风格的 Java EE 后端开发脚手架。 基于 SpringBoot,技术选型采用主流的技术框架(Mybatis-Plus,Redisson,Xxl-job,Swagger)。开箱即用,提高研发效能。

多家公司线上产品使用了该脚手架。国内某知名日化企业,已把该脚手架作为基础脚手架,支撑数字化产品的研发。

项目特点

  1. 自定义 DSL 查询语法。配合 generator 模块,研发人员定义表结构之后,逆向生成代码,单表情况下的CRUD,包括分页查询,可不用写一行代码,就完成开发任务。减轻后端研发人员开发压力,提高研发效率。分页查询语法 在 自定义 DSL 查询语法 有做详细的说明。

  2. 自研 Excel 报表导入导出工具。 配合自定义查询语法,让导出 Excel 功能的开发和普通条件查询一样简单。高效开发报表导出功能。使用方法参照:BaseUserController.exportByExcel 。

  3. 自研 分布式业务编码 生成服务。业务编码可批量生成。生成和使用过程,都是线程安全。 详细参照方法:ActivityOrderBizCodeGenerator.generateNextCode ;generateBizCodeList 。

  4. 自定义缓存 @RCacheable 注解,实现分布式缓存。支持 Spel语法,可直接指定 expireTime 。
    示例:@RCacheable(key = "dmt::miniprogram::token", secKey = "#token", ttl = 1, timeUnit = TimeUnit.DAYS)

  5. 自定义注解 @LoginRequired 注解,可以自动装配当前操作人实体。该注解的意义在于,消除在每个 controller 方法需要手动获取当前操作人的重复性的代码。

  6. 自定义 service 方法级别文档生成规则和实现。某种程度上缓解研发人员不爱写文档,又抱怨接手新项目没有文档的尴尬处境。 在方法调用树示例 有相应的 json 视图可以看到调用树的数据结构。

    参考 <从码农到工匠> 控制代码复杂度的做法。复杂的业务的流程可拆分为多个阶段,每个阶段下有多个子步骤。 自定义注解,过程 @Process, 阶段 @Phase,步骤 @Step。在业务方法的阶段和步骤上加上相应的注解,即可根据请求返回的 TraceId 获取 service 级别的方法调用树。

    研发人员需要按照定义规则流水线化,组件化设计代码,再加上必要的注解,runtime 状态下,就可以得到一颗拥有层次结构的方法调用树,得到复杂业务逻辑的主干架构。每个树结点有 Java 类方法,行数等信息,所见即所得。

自定义 DSL 查询语法

查询条件语法

  {
      "current":  "页码",
      "size":  "页数",
      "modelField_$_operation":"搜索条件",
      "orderByDesc":"modelField"
   }

示例

  {
       "current":1,
       "size":10,
       "userName_$_like":"github",
       "orderStatus_$_in":[1,3,4],
       "createTime_$_gt":1581392098000,
       "orderByDesc": "createTime"
  }

查询条件关键字

KEYWORD DESC
modelField 模型字段
_$_ 分隔符
orderByDesc 递减
orderByAsc 递增

operation 关键字列表

operation DESC 语义
eq 等于 =
ne 不等于 <>
gt 大于 >
ge 大于等于 >=
lt 小于 <
le 小于等于 <=
like 模糊匹配 '%value%'
likeLeft 以 value 结尾匹配 '%value'
likeRight 以 value 开头匹配 'value%'
in in in
between 闭区间 between s and e

方法调用树示例

{
    "id":0,
    "parentId":-1,
    "lineNum":80,
    "method":"UserAuthController.register",
    "event":"小程序用户注册",
    "lifeCycle":"process",
    "sync":true,
    "childList":[
        {
            "id":7,
            "parentId":0,
            "lineNum":46,
            "method":"WechatServiceImpl.getUserInfoByCode",
            "event":"根据jscode获取用户信息",
            "lifeCycle":"phase",
            "sync":true
        },
        {
            "id":8,
            "parentId":0,
            "lineNum":25,
            "method":"BaseUserServiceImpl.getUserByOpenId",
            "event":"根据openId获取用户信息",
            "lifeCycle":"phase",
            "sync":true
        },
        {
            "id":9,
            "parentId":0,
            "lineNum":115,
            "method":"WechatAuthServiceImpl.invalidUserToken",
            "event":"失效用户token",
            "lifeCycle":"phase",
            "sync":true
        },
        {
            "id":10,
            "parentId":0,
            "lineNum":43,
            "method":"WechatAuthServiceImpl.register",
            "event":"注册用户到DMT系统",
            "lifeCycle":"phase",
            "sync":true,
            "childList":[
                {
                    "id":11,
                    "parentId":10,
                    "lineNum":27,
                    "method":"BaseGenerateCodeServiceImpl.generateNextCode",
                    "event":"生成用户编码",
                    "lifeCycle":"step",
                    "sync":true
                }
            ]
        },
        {
            "id":12,
            "parentId":0,
            "lineNum":27,
            "method":"BaseUserTokenServiceImpl.saveNewToken",
            "event":"保存新token",
            "lifeCycle":"phase",
            "sync":true
        }
    ]
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].