让人上瘾的新一代开发神器,彻底告别Controller、Service、Dao等方法
共 3050字,需浏览 7分钟
·
2022-06-06 18:52
往期热门文章:
1、SpringBoot 启动时自动执行代码的几种方式,还有谁不会??
4、遭弃用的 Docker Desktop 放大招!宣布支持 Linux
来源:https://c1n.cn/OHt1w
初衷
用尽可能简单的方式,完成尽可能多的需求。通过约定的方式实现统一的标准。告别加班,拒绝重复劳动,远离搬砖。
特性
如下:
用于快速开发 API 接口。不再定义 Controller,Service,Dao,Mybatis,xml,Entity,VO 等对象和方法。
可视化界面,将入参自动封装到可执行的脚本上,支持所有关系性数据库 SQL 执行语句,非关系型 MONGODB 查询语句,欢迎扩展。
完全基于 springboot2.x 作为 springboot 项目的 stater 方式集成,无侵入性,新老项目都能快速集成。
只需编写一行代码即可完成大部分的业务需求开发,使用难度级别(测试 or 运维)也可参与开发。
在线动态编译,无需重启,即时生效,多数据源操作。
版本控制,历史记录比对,回滚等功能。
远程一键发布到线上环境。
线上 POSTMAN 调试,保存 POSTMAN 信息或三方文档的自动生成,历史调用记录存储,回塑。
代码提示,SQL 提示,语法提示。
用户管理控制,安全性控制,以及历史行为记录。
经过多次项目验证,传统业务型开发,服务端效率能够提升 3-5 倍,前后端联调提升效率 1 倍,测试效率 2 倍提升。
传统开发步骤
如下:
增加一张表
创建实体对象,映射这张表
创建 API 入参 VO
创建 API 出参 VO
创建 Controller
创建 Service
创建 Dao
创建 Mapper,xml 或者 JPA
在 mysql 客户端,或者 mongo 客户端中写执行脚本语句,复制到代码中
反复重启,进行接口自测
编写 API 文档
完成一个功能点开发
使用一些工具比如 mybatis plus,jpa 或者 idea 的 Easy code、MybatisCodeHelperPro 等可以一键生成一些基于单表的操作的相关代码。
但是业务场景来说,可能喜欢更灵活,代码执行效率更高的一些操作方式,并且一个项目开发中,从来不仅仅是单表的一些操作操作。
市面上就上面的这些问题,提供了 APIJSON 和 GraphQL 等解决方案,这两个工具相对操作数据库相对很灵活,但是操作难度,和学习成本高,并且适合场景也是有限,如果要实现简单的业务处理逻辑会比较复杂。
那么,我希望有一种功具,它可以像 mybatis xml,像 metabase BI,一样,能够直接操作原生的数据库查询及操作语句。
并且可以有 springboot 的 restful 这种业界标准的接口定义/及参数定义方式,并且按照统一约定的方式,省略三层 MVC 的定义,并且能够对数据进行一些逻辑处理,以满足多元化的业务需求。
最好是作为一个插件的形式,能够很好的集成在现有项目中,不会影响到现有的业务逻辑处理。
这就是我要介绍的一款工具 Rocket API:
https://gitee.com/alenfive/rocket-api-doc/wikis/pages
区别于前两类的设计方式不同点在于:
①基于 springboot 开发。包括接口的注册,参数的获取,输入输出的消息转换,都是基于 springboot 的生态环境,能无侵入性集成于 springboot 项目中。
如果你有基于 springboot 实现了全局异常处理,返回值统一封装,权限控制等,不用担心,都在你的管控范围内。
②参考于 mybatis 的参数定义方式,不同点在于使用默认大于配置的逻辑,实现参数的注入直接来源于请求参数,省略了传统 MVC 实体类,方法,VO 等定义。
③默认担供了内部函数,可以很简单的实现 多表/多库的增/删/改/查,导出,导入,上传,下载,分页查询等功能。
④提供了基于 Groovy 的语法解析,可以实现 Groovy 的一些逻辑处理。
⑤提供了调用 springboot bean 对象的方法及其他任意 java 定义的静态类,方法和对象,这意味着我能够调用公共定义的类,或者之前在项目中定义的 service,dao 和 utils。
⑥因为基于的 groovy 动态语法解析,所以代码修改,或者线上问题的处理能够不用重启服务,也不用升级代码就能够完成功能开发和问题处理,这对开发效率而言会有很大的提升。
⑦传统业务开发,不仅有服务端的开发,还有相对应的文档生成,前后端对接,以及测试配合。
“Rocket API” 提供了 POSTMAN 的操作页面,能够将参数的请求值,请求类型,响应等保存起来,给予前端做真实数据的对接,而不是类 yapi,或者 swagger 之类生成的不能使用的假数据。
基于这些真实的请求参数和返回值,提供了外部接口能力,测试团队可以以此来做接口的一键冒烟测试和文档的一键生成。
演示说明
接口功能逻辑页面:
接口功能自测页面:
集成方式:
①添加依赖:
<dependency>
<groupId>com.github.alenfivegroupId>
<artifactId>rocket-api-boot-starterartifactId>
<version>0.0.1-SNAPSHOTversion>
dependency>
②数据源配置:
@Component
public class DefaultDataSourceManager extends DataSourceManager {
@Autowired
private JdbcTemplate jdbcTemplate;
@PostConstruct
public void init() {
Map dialects = new HashMap<>();
dialects.put("mysql",new SqlDataSource(jdbcTemplate,true));
super.setDialectMap(dialects);
}
}
③最新建表脚本查看:
https://gitee.com/mihuajun/rocket-api-doc/wikis/pages?sort_id=2670007&doc_id=859283
启动项目,访问地址:
http://localhost:8080/interface-ui
最近热文阅读:
1、SpringBoot 启动时自动执行代码的几种方式,还有谁不会?? 2、如何写出让同事吐血的代码? 3、遭弃用的 Docker Desktop 放大招!宣布支持 Linux 4、IDEA公司再发新神器!超越 VS Code 骚操作! 5、推荐好用 Spring Boot 内置工具类 6、五个刁钻的String面试问题及解答 7、IntelliJ平台将完全停止使用Log4j 8、神操作!我把 3000 行代码重构成 15 行! 9、我用Java几分钟处理完30亿个数据... 10、一款自动生成单元测试的 IDEA 插件 关注公众号,你想要的Java都在这里