·设为首页收藏本站📧邮箱修改🎁免费下载专区💎积分✅卡密📒收藏夹👽聊天室
DZ插件网 门户 网站安全 查看内容

让SpringBoot不再需要Controller、Service、Dao!这款开源工具绝了!

2023-8-8 07:56| 发布者: 独家记忆| 查看: 18205| 评论: 0

摘要: 找到解决开发API时啰嗦问题的利器!magic-api是一个基于Java的接口快速开发框架,让你无需定义Controller、Service、Dao等Java对象即可完成常见的HTTP API接口开发。结合SpringBoot、Vue和uni-app,可以实现高效敏捷的电商系统开发。详细教程和演示,欢迎访问官网macrozheng.com。

让SpringBoot不再需要Controller、Service、Dao!这款开源工具绝了!979 作者: 来源: 发布时间:2023-8-8 07:56

mall学习教程官网:macrozheng.com

今天介绍我正在用的一款高效敏捷开发工具magic-api,顺便分享一点工作中使用它的心得

缘起


先说一下我为什么会使用这个工具?

最近新启动一个项目,业务并不算复杂,那种典型的管理系统,产品要求支持全局页面配置化,前端一切相关配置必须通过接口返回,比如:像查询下拉框(启用、禁用)这类简单的条件,国际化,必须做到全动态配置。

其实只要人手够时间够,这些都没问题,但问题就在于立项到上线周期就给十几天,而开发时间满打满算不到10来天,时间紧又不给加人,底层程序员的生活真是太难了。

不过办法总比困难多,前同事老哥给我推荐了这个工具,然后就真香了,哈哈~

magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义ControllerServiceDaoMapperXMLVO等Java对象即可完成常见的HTTP API接口开发。

上边是官方对工具的介绍,但好像还是没明白它是干什么的,接下来咱们演示一下,你就会觉得它很哇塞了

推荐一套基于 SpringBoot + Vue + uni-app 实现的全套电商系统mall(Github标星60K),前台商城项目和后台管理系统都有了,能支持完整的订单流程!涵盖商品、订单、购物车、权限、优惠券、会员等功能,功能很强大!
  • 项目地址:https://github.com/macrozheng/mall
  • 视频教程:https://www.macrozheng.com/video/

环境


首先pom.xml 引入magic-api核心包magic-api-spring-boot-starter
<dependency>
    <groupId>org.ssssssss</groupId>
    <artifactId>magic-api-spring-boot-starter</artifactId>
    <version>0.7.1</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

application.yml 配置更简单,数据库(没数据库操作可以不写)和magic-api的基础信息
magic-api:
  web: /magic/web # UI请求的界面以及UI服务地址
server:
  port: 9999
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    password: xinzhifu521
    url: jdbc:mysql://47.93.6.5:3306/magic-api
    username: root

好了~ 到这环境就搭建完成!

在具体演示之前先吐槽一下用Java开发API的缺点,首当其冲的就是啰嗦,尤其是在工期紧,功能需快速迭代的时候,既要严格执行开发规范,又不能耽误工期,即便最简单的一个API接口,也要写对应的 ControllerServiceDaoMapperDTOVO等类,尽管这些基础编码有对应的代码生成器,但维护起来还是相当麻烦,magic-api起到一个很好的辅助作用,少写了很多代码。

实践


直接访问http://127.0.0.1:9999/magic/web打开magic-api可视化界面,看到如下的界面。

让SpringBoot不再需要Controller、Service、Dao!这款开源工具绝了!4522 作者: 来源: 发布时间:2023-8-8 07:56

创建一个分组,其中分组前缀为一组API接口的访问根目录,相当于@Controller("/order")注解。

让SpringBoot不再需要Controller、Service、Dao!这款开源工具绝了!626 作者: 来源: 发布时间:2023-8-8 07:56

接着在分组中创建接口 order_detail,页面配置接口的基础信息,接口名称、请求路径、请求方法、请求参数、请求header等,接口直接return返回内容
return ‘小富最帅’

让SpringBoot不再需要Controller、Service、Dao!这款开源工具绝了!2150 作者: 来源: 发布时间:2023-8-8 07:56

在页面访问刚刚创建接口的全路径 http://127.0.0.1:9999/order/order_detail ,发现已经成功返回数据。

让SpringBoot不再需要Controller、Service、Dao!这款开源工具绝了!6507 作者: 来源: 发布时间:2023-8-8 07:56

也可以直接拼JSON格式数据直接返回

让SpringBoot不再需要Controller、Service、Dao!这款开源工具绝了!2479 作者: 来源: 发布时间:2023-8-8 07:56

如果URL传参 /order_detail/{id},导入request模块获取参数
import request;
a = path.id

到这一个简单的API接口就开发完了,而此时我们还未在项目中写一行代码

让SpringBoot不再需要Controller、Service、Dao!这款开源工具绝了!4280 作者: 来源: 发布时间:2023-8-8 07:56

但上边只是静态数据,在实际开发中往往要与数据库打交道,magic-api提供了一些类似于python开发中的模块化组件,例如引入import db 模块,直接执行SQL语句会返回JSON格式数据,省略了很多中间步骤。

让SpringBoot不再需要Controller、Service、Dao!这款开源工具绝了!2335 作者: 来源: 发布时间:2023-8-8 07:56

magic-api语法与Java的差异不大,不过更加精简了一些,只要写过Java对它学习成本并不高,比如常用得for循环,也会有普通和lambda多种写法。
var sum = 0;
var list = [1,2,3,4,5];
for(val in list){
    sum = sum + val;
}

list.each(it => sum+= it + 1)

这里我只简单的介绍了使用,还有很多高级特性,比如:调用Java API、集成redisMongo等,感兴趣的同学自己看下官方文档吧,它还提供了很多语法demo,拿来即用就好。

地址:https://gitee.com/ssssssss-team/magic-api

心得


magic-api在我整个项目赶工期的过程中可谓是居功至伟,节省了一大半的开发时间,不仅后端开发接口效率显著提升,对前端联调帮助也很大。

前后端从开始就定义好数据结构,后端快速提供静态数据接口,前端用真实接口联调,后端补充完业务逻辑后无缝替换成真实数据,这样做到同步开发,前端也不用只写伪代码等接口联调了。

magic-api虽然可以提高开发效率,但是实际应用中我也只敢把它用在一些逻辑相对简单,偏配置类接口,核心业务还是要按“规矩”办事,毕竟系统稳定、安全才是最重要的。


Github上标星60K的电商实战项目,出 视频教程(2023最新版) 了!全套教程基于SpringBoot 2.7版本,可以说内容非常新!全套教程约40小时,共100期,通过这套教程你可以拥有一个涵盖主流Java技术栈的完整项目经验,同时提高自己独立开发一个项目的能力,下面是项目的整体架构图,感兴趣的小伙伴可以点击链接 mall视频教程 加入学习。

让SpringBoot不再需要Controller、Service、Dao!这款开源工具绝了!5425 作者: 来源: 发布时间:2023-8-8 07:56

整套 视频教程 的内容还是非常完善的,涵盖了mall项目最佳学习路线、整体框架搭建、业务与技术实现全方位解析、线上Docker环境部署等内容,具体大纲可以参考下图,你也可以点击链接 mall视频教程 了解更多内容。

让SpringBoot不再需要Controller、Service、Dao!这款开源工具绝了!9983 作者: 来源: 发布时间:2023-8-8 07:56

推荐阅读

  • Github标星60K!这套涵盖Java主流技术和电商核心业务的实战教程,太香了!
  • Github标星60K!mall前台商城系统正式发布,支持完整订单流程!
  • 订单系统就该这么设计(万能通用),稳的一批!
  • 电商系统中的商品功能就该这么设计,稳的一批!
  • 权限系统就该这么设计(万能通用),稳的一批!
  • 新入职一家公司,接手了个从零开始的项目,好难!





上一篇:MySQL 被 PG 干翻了..
下一篇:电商系统中的商品功能就该这么设计,稳的一批!

鲜花

握手

雷人

路过

鸡蛋

评论

您需要登录后才可以发表言论 登录立即注册
创宇盾启航版免费网站防御网站加速服务
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.16.47.89,GMT+8, 2024-11-24 02:25 , Processed in 0.207389 second(s), 43 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2024 Discuz! Team.

关灯
扫一扫添加微信客服
QQ客服返回顶部
返回顶部