IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 让人上瘾的新一代开发神器,彻底告别Controller、Service、Dao等方法 -> 正文阅读

[Java知识库]让人上瘾的新一代开发神器,彻底告别Controller、Service、Dao等方法

点击“终码一生”,关注,置顶公众号

每日技术干货,第一时间送达!

1、初衷

用尽可能简单的方式,完成尽可能多的需求。通过约定的方式 实现统一的标准。告别加班,拒绝重复劳动,远离搬砖

2、特性

  • 用于快速开发API接口。不再定义Controller,Service,Dao,Mybatis,xml,Entity,VO等对象和方法

  • 可视化界面,将入参自动封装到可执行的脚本上,支持所有关系性数据库SQL执行语句,非关系型MONGODB查询语句.欢迎扩展

  • 完全基于springboot2.x 作为springboot项目的stater方式集成,无侵入性,新老项目都能快速集成

  • 只需编写一行代码即可完成大部分的业务需求开发,使用难度级别(测试 or 运维)也可参与开发

  • 在线动态编译,无需重启,即时生效,多数据源操作

  • 版本控制,历史记录比对,回滚等功能

  • 远程一键发布到线上环境

  • 线上POSTMAN调试,保存POSTMAN信息或三方文档的自动生成,历史调用记录存储,回塑

  • 代码提示,SQL提示,语法提示

  • 用户管理控制,安全性控制,以及历史行为记录

  • 经过多次项目验证,传统业务型开发,服务端效率能够提升3-5倍,前后端联调提升效率1倍,测试效率2倍提升

3、传统开发步骤

  • 增加一张表

  • 创建实体对象,映射这张表

  • 创建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

区别于前两类的设计方式不同点在于:

  • 基于springboot开发。包括接口的注册,参数的获取,输入输出的消息转换,都是基于springboot的生态环境,能无侵入性集成于springboot项目中,如果你有基于springboot实现了全局异常处理,返回值统一封装,权限控制等,不用担心,都在你的管控范围内

  • 参考于mybatis的参数定义方式,不同点在于使用默认大于配置的逻辑,实现参数的注入直接来源于请求参数,省略了传统MVC 实体类,方法,VO等定义

  • 默认担供了内部函数,可以很简单的实现 多表/多库的增/删/改/查,导出,导入,上传,下载,分页查询等功能

  • 提供了基于Groovy的语法解析,可以实现Groovy的一些逻辑处理

  • 提供了调用springboot bean对象的方法及其他任意java定义的静态类,方法和对象,这意味着我能够调用公共定义的类,或者之前在项目中定义的service,dao,和utils

  • 因为基于的groovy动态语法解析,所以代码修改,或者线上问题的处理能够不用重启服务,也不用升级代码就能够完成功能开发和问题处理,这对开发效率而言会有很大的提升

  • 传统业务开发,不仅有服务端的开发,还有相对应的文档生成,前后端对接,以及测试配合。“Rocket API” 提供了POSTMAN的操作页面,能够将参数的请求值,请求类型,响应等保存起来,给予前端做真实数据的对接,而不是类yapi,或者swagger之类生成的不能使用的假数据。基于这些真实的请求参数和返回值,提供了外部接口能力,测试团队可以以此来做接口的一键冒烟测试,和文档的一键生成

4、演示说明

接口功能逻辑页面

接口功能自测页面

文档和演示地址:

https://gitee.com/alenfive/rocket-api-demo

集成方式:

1. 添加依赖

<dependency>??
????<groupId>com.github.alenfive</groupId>??
????<artifactId>rocket-api-boot-starter</artifactId>??
????<version>0.0.1-SNAPSHOT</version>??
</dependency>

2. 数据源配置

@Component??
public?class?DefaultDataSourceManager?extends?DataSourceManager?{
??
????@Autowired??
????private?JdbcTemplate jdbcTemplate;
??
????@PostConstruct??
????public?void?init()?{
????????Map<String,DataSourceDialect> dialects =?new?HashMap<>();
????????dialects.put("mysql",new?SqlDataSource(jdbcTemplate,true));
????????super.setDialectMap(dialects);
????}
}

3. 最新建表脚本查看

https://gitee.com/mihuajun/rocket-api-doc/wikis/pages?sort_id=2670007&doc_id=859283

启动项目,访问地址:http://localhost:8080/interface-ui

PS:防止找不到本篇文章,可以收藏点赞,方便翻阅查找哦。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-20 22:54:28  更:2022-06-20 22:56:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:10:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码