Java精选面试题 (微信小程序): 5000+ 道面试题和选择题, 真实面经 , 简历模版 ,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计、大厂真题等,在线随时刷题!
"偷懒"可以说是技术创新的重要动力之一,很多技术,框架的革新,本质上就是为了能更好的"偷懒",今天又来分享一款偷懒神器:Rocket-API;
什么是Rocket-API?
"Rocket-API" 基于 SpringBoot 的 API 敏捷开发框架,服务端50%以上的功能只需要写SQL或者 mongodb原始执行脚本就能完成开发,另外30%也在不停的完善公共组件,比如文件上传,下载,导出,预览,分页等等通过一二行代码也能完成开发,剩下的20%也能依赖于动态编译技术生成class的形式,不需要发布部署,不需要重启来实现研发团队的快速编码,提测以及回归。实现了服务端研发效率300%-500%的提升,人力成本减少了3倍
定位
拒绝CRUD。用尽可能简单的方式,完成尽可能多的需求。通过约定的方式实现统一的标准。告别加班,拒绝重复劳动,远离搬砖。
特性
如下:
用于快速开发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 的定义,并且能够对数据进行一些逻辑处理,以满足多元化的业务需求。
最好是作为一个插件的形式,能够很好的集成在现有项目中,不会影响到现有的业务逻辑处理。
推荐划水摸鱼地址: https://www.yoodb.com/slack-off/home.html
这就是我要介绍的一款工具 Rocket API:
开源地址:https: //gitee.com/alenfive/rocket-api
Demo地址:https: //gitee.com/alenfive/rocket-api-demo
区别于前两类的设计方式不同点在于:
基于 springboot 开发。包括接口的注册,参数的获取,输入输出的消息转换,都是基于 springboot 的生态环境,能无侵入性集成于 springboot 项目中。
如果你有基于 springboot 实现了全局异常处理,返回值统一封装,权限控制等,不用担心,都在你的管控范围内。
参考于 mybatis 的参数定义方式,不同点在于使用默认大于配置的逻辑,实现参数的注入直接来源于请求参数,省略了传统 MVC 实体类,方法,VO 等定义。
默认担供了内部函数,可以很简单的实现 多表/多库的增/删/改/查,导出,导入,上传,下载,分页查询等功能。
提供了基于 Groovy 的语法解析,可以实现 Groovy 的一些逻辑处理。
提供了调用 springboot bean 对象的方法及其他任意 java 定义的静态类,方法和对象,这意味着我能够调用公共定义的类,或者之前在项目中定义的 service,dao 和 utils。
因为基于的 groovy 动态语法解析,所以代码修改,或者线上问题的处理能够不用重启服务,也不用升级代码就能够完成功能开发和问题处理,这对开发效率而言会有很大的提升。
传统业务开发,不仅有服务端的开发,还有相对应的文档生成,前后端对接,以及测试配合。
“Rocket API” 提供了 POSTMAN 的操作页面,能够将参数的请求值,请求类型,响应等保存起来,给予前端做真实数据的对接,而不是类 yapi,或者 swagger 之类生成的不能使用的假数据。
基于这些真实的请求参数和返回值,提供了外部接口能力,测试团队可以以此来做接口的一键冒烟测试和文档的一键生成。
接口功能自测页面:
文档和演示地址:
文档地址:https: //www.yuque.com/alenfive/rocket-api
在线演示:http: //39.98.181.90:8081/interface-ui?id=5f433b40f8b91c43f8835d3c&page=editor
集成方式:添加依赖:
com.github.alenfive groupId> rocket-api-boot-starter artifactId> 2.4.4.RELEASE version> 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://www.yuque.com/alenfive/rocket-api/dhfv0n
启动项目,访问地址:
http://localhost:8080/interface-ui
来源:网络
公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!
最近有很多人问,有没有技术或摸鱼交流群!加入方式很简单,公众号Java精选,回复“加群”,即可入群!在线摸鱼:https://www.yoodb.com/
Java精选面试题(微信小程序):3000+道面试题,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计等,在线随时刷题!
特别推荐:专注分享最前沿的技术与资讯,为弯道超车做好准备及各种开源项目与高效率软件的公众号,「大咖笔记」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片关注。
文章有帮助的话,点在看,转发吧!
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.