代码生成器

如果说基础框架是技术轮子,那么我们就是生产线。不仅可以造出各种尺寸的轮子,通过我们的在线配置工具,还能生成您的更多业务所需,如:

  • 创建多个数据库链接,并从中导入数据表。
  • 创建多个微服务,再关联到一到多个数据库链接。
  • 数据表之间可建立服务内和跨服务的“一对一、一对多、多对多、字典和分组聚合计算”等关联关系。
  • 生成 Job 业务代码,目前已支持“全量同步、增量同步、增量分组聚合转换同步”等代码模板。
  • 创建表单并对接后台接口,操作并显示后台数据。

在创建项目时,下图所示的微服务组件可正交化组合。生成后的工程不仅可用于企业中台化改造,同样也适用于开发者进行微服务全技术栈的快速学习。

主要功能

  • 提供前后端主流技术栈组件,可按需选择生成您的工程基础架构。
  • 可创建多数据库、多应用服务,并导入业务数据表,配置服务内或跨服务的复杂表关系。
  • 前端支持基于 Fragment 和 Block 的嵌套布局,配置后即可生成多样化的表单页面,并可预览。
  • 操作权限和数据权限,灵活可配、运行时性能高度优化。
  • 有别于其他产品,我们不仅提供了Job框架的集成,更能生成任务处理器的业务逻辑代码。
  • 微服务和单体服务的接口命名规则和参数定义完全一致,便于您今后的平滑升级。

竞争优势

  • 排在首位的就是15万字以上的专业、详尽、完善和暗黑护眼的操作指南、开发文档和教学视频。
  • 真正的代码生成器,而非脚手架,可生成相对复杂的中台化业务代码。
  • 浅显易懂的高质量生成后工程代码,经过SonarQube和Alibaba代码规范的严格扫描。
  • 合理、全网超低价的教学版和企业版商业授权。(请我们撸一次串的价格)

开箱即用

项目信息如您所愿,工程名称、目录结构、基础包名、common模块、代码注释中的@author信息等,在创建工程时即已配置,不会留有橙单的任何信息。因此无需二次修改,前后端直接编译运行即可。如编译器和运行时出现问题,那一定是我们的bug,在得到您反馈后,我们将及时修复。

技术选型

  • 前端: Element (Vue) / Ant Design (React) + ECharts / AntV + Axios + Webpack。
  • 后端: Spring Boot / Spring Cloud / Spring Cloud Alibaba + Spring Security OAuth2 + Mybatis + Jwt。
  • 工具库: Hutool + Guava + Caffeine + Lombok + MapStruct + 通用Mapper。
  • 服务组件: Redis + Zookeeper + Consul + Apollo + XXL-Job + Kafka + Nacos + Sentinel + Seata + Nepxion Discovery。
  • 系统监控: ELK + PinPoint / SkyWalking + Grafana + Prometheus。

基础功能

  • 前端框架:单页面、多标签、多栏目和子路由,多套高颜值样式模式可供选择。
  • 前端能力:列表编辑、统计图表、明细数据下载、上传下载、数据导出、自定义打印样式模板、富文本等。
  • 页面布局:支持基于 Fragment 和 Block 的灵活布局方式,通过配置即可生成多样化的表单页面,并可预览。
  • 接口规范:微服务和单体服务的接口命名规则和参数定义完全一致,便于日后的平滑升级。
  • 后台架构:分布式锁、分布式 Id 生成器、分布式缓存、分布式事务、分布式限流和灰度发布等,按需集成。
  • 用户管理:支持基于OAuth2的单点登录。
  • 操作权限:前端控制可精确到按钮级的操作和标签级的显示,后台统一拦截验证更加安全。
  • 数据权限:基于 Mybatis 拦截器 + JSqlParser 的实现方式,配置更灵活,代码侵入性更低。
  • 多数据源:可根据配置动态生成,路由策略灵活可扩展。
  • 数据组装:Java 注解方式实现数据组装,支持统一接口的服务内和跨服务的一对一、一对多、多对多、字典、聚合计算等关系数据组合。
  • 定时任务:我们不仅提供了 Job 基础框架的集成,更能生成灵活可配、高度优化、便于二次开发的 Job 业务逻辑代码。
  • 系统监控:基于 Kafka + ELK 的日志收集,基于 PinPoint/SkyWalking 的服务链路跟踪,基于 GPE 的服务性能指标监控。

设计理念

  • 前沿的单表组合式设计,使业务服务的拆分与再合并 SO EASY。
  • 先代码,后SQL的原则,让服务横向扩充更具弹性。
  • 标准化的服务间调用接口,使业务服务组合更具正交性。
  • 前后端基于约定各司其职,默契配合,让系统运行飞起来。
  • 可平滑的逐步演化为云原生架构。

代码质量

  • 无任何二次封装,只生成您最懂的代码。
  • 遵循阿里巴巴标准的代码规范。
  • SonarQube 基于最严格检测规则的代码扫描。
  • 产品级代码质量,层次清晰、滴水不漏。
  • 近乎于0的代码重复率,35%以上的注释覆盖率。
  • 15年架构师优化的每一处细节。

规则扫描

此为在线演示工程的代码审查报告,而非当前开源示例工程。前者代码量更大,结构更复杂。

  1. SonarQube 扫描
  • 基于SonarQube8.2缺省最严格的代码扫描规则,其中代码复杂度要求为15。
  • 有气味代码共90处,其中85处为DTO、Model、常量字典、RPC接口等定义出现重复名称所致,均与模拟实际业务有关。
  • 其余气味代码,是在权衡性能、可读性和易修改性等因素后保留下来的,具体见图4。

  1. Alibaba Code Guide 扫描
  • 下载最新版本IDEA插件,同时打开所有审查条件。
  • 全部代码扫描通过。

  1. Statistic 代码统计
  • 生成代码总量约为86000多行,主要包括Java、XML、YAML和SQL初始化脚本等。
  • Java代码覆盖率为37%。

开源工程部署

  1. 数据初始化。
  • 通过常用的数据库访问工具(如:navicat),执行工程目录下的zz-orange-demo.sql文件。
  • 导入脚本主要负责,数据库创建、数据表创建和测试数据的插入。
  1. 环境准备。 docker是必选组件。通过docker-compose命令,可快速启停服务所依赖的服务中间件,如nacos、redis、zookeeper、kafka和sentinel dashboard等。中间件的控制台访问方式,可参考工程目录下的README文件。
# 假定当前目录为工程根目录。
cd zz-resource/docker-files
# 启动和停止带有基础服务中间件的docker-compose.yml文件
docker-compose up -d
# 彻底终止容器
docker-compose down
# 在第一次启动之后,可以考虑每次执行下面的命令启动和停止容器。
docker-compose start
docker-compose stop
  1. 后台工程导入。 以Maven的形式导入IDE,直接编译运行即可。具体可参考我们的开发文档教学版微服务工程导入章节。
  2. 后台服务配置。
  • 进入工程目录下的 zz-resource/config-data/ 子目录,修改和数据库相关的配置,具体操作详见下图及文字注释。

  • 将该目录下的所有配置文件导入nacos。nacos控制台访问地址 localhost:8848/nacos,用户名和密码 nacos/nacos。
  • 具体导入方式可参考我们的开发文档服务配置章节。
  1. 后台服务启动。 这里仅以upms服务为例。在开发环境中,为每个微服务启动项配置main class,下图为IntelliJ IDEA中的配置截图,配置后点击Debug/Run按钮即可启动。

  1. 前端工程导入和启动。
  • 将前端工程导入vscode。
  • 修改 src -> core -> config 下的配置文件,将baseUrl修改为您服务器地址。
  • 安装依赖,执行 npm install。
  • 启动前端服务,执行 npm run dev。
  • 具体可参考我们的开发文档教学版前端工程启动段落。

主要截图

觉得不错可以转发+关注支持一下,私信我【代码生成器】即可

开发文档

演示工程

微服务中间件

https://gitee.com/orangeform/orange-admin

推荐一个Spring Cloud Alibaba 的代码生成器项目相关推荐

  1. 搞到一个IDEA插件,H哥30秒生成一个Spring Cloud Alibaba工程

    如果你想使用 Spring Cloud Alibaba,那么你遇到的第一个问题一定是如何快速的创建一个脚手架工程. 近日,阿里巴巴发布了 Spring 的国内脚手架定制版 Aliyun Java In ...

  2. Spring Cloud Alibaba微服务项目中集成Redis实现分布式事务锁实践

    引言 我们知道同一个进程里面为了解决资源共享而不出现高并发的问题可以通过高并发编程解决,通过给变量添加volatile关键字实现线程间变量可见:通过synchronized关键字修饰代码块.对象或者方 ...

  3. Spring 社区的唯一一个国产开源项目 - Spring Cloud Alibaba 毕业了

    阿里妹导读:一年多前,Java 界最近发生了一件大事,阿里开源 Spring Cloud Alibaba,并推出首个预览版.Spring Cloud 本身是一套微服务规范,并不是一个拿来即可用的框架, ...

  4. Spring Cloud Alibaba 发布第一个正式版本,顺利完成孵化!

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 相信大家对上周的 <来自 Spring Cloud 官方的消息,Spring Clou ...

  5. Spring Cloud Alibaba即将正式毕业,Netflix之后新生力量值得期待!

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 本文转载自公众号:阿里巴巴中间件 2019 年 7 月 24 日晚,Spring Cloud ...

  6. 说说我为什么看好Spring Cloud Alibaba

    点击蓝色"程序猿DD"关注我哟 最近对<Spring Cloud Alibaba基础教程>系列的催更比较多,说一下最近的近况:因为打算Spring Boot 2.x一起 ...

  7. Spring Cloud Alibaba 完美融合Dubbo-Nacos示例

    原文请关注微信公众号"阿甘正专",获取更多最新文章推荐哦0.0 引言 目前微服务盛行,很多人会把Spring Cloud与Dubbo进行对比,Spring Cloud与Dubbo的 ...

  8. 来自 Spring Cloud 官方的消息,Spring Cloud Alibaba 即将毕业

    2019 年 7 月 24 日晚,Spring Cloud 官方发布公告: 仓库迁移是官方决定 Spring Cloud Alibaba 即将毕业 根据官方最新的发版规则,我们会把孵化器中的 Spri ...

  9. Spring Cloud Alibaba 发布毕业后的首个版本

    相信大家对上周的 <来自 Spring Cloud 官方的消息,Spring Cloud Alibaba 即将毕业>文章记忆犹新.本周,Spring Cloud Alibaba 正式毕业, ...

  10. springcloud gateway ribbon使用_Github点赞接近 70k 的Spring Cloud学习教程+实战项目推荐!牛批!...

    这篇文章继续来推荐 Spring Cloud 的教程和实战项目了!想必不用不多说,大家都知道 Spring Cloud 的重要程度.几乎稍微有点规模的公司,一般都离不开要和微服务打交道.同时,Spri ...

最新文章

  1. 一行代码实现Okhttp,Retrofit,Glide下载上传进度监听
  2. cnil在python_在Python中使用cumprod()计算权益曲线
  3. SAP MIR7输入数量自动金额的设置
  4. 靠 GitHub 打赏谋生的程序员,他们是怎么做的?
  5. 大型网站系统架构实践(五)深入探讨web应用高可用方案
  6. mysql设置参数0和1_MySQL 8.0 首个自适应参数横空出世
  7. tomcat 增加运行内存
  8. 然爸读书笔记(2014-2)----影响力
  9. Codeforces Round #636 (Div. 3) D. Constant Palindrome Sum 思维 + 差分
  10. JDK源码解析之 Java.lang.Short
  11. linux 修改自动联网的配置说明
  12. js实现简单的全选和反选
  13. CAD 使用 颜色 线型
  14. 红外光通信装置数字部分思路点睛 2013年国赛f题
  15. matlab伽马分布,伽马分布(Γ分布的分布函数)
  16. 中国知网论文免费下载的4个方法分享
  17. SIFI和ORB在尺度缩放、旋转、仿射上的特征点不变实验代码,并比较SIFI和ORB提取特征点的速度
  18. Android微信页面缓存清理,安卓用户如何彻底清理微信大量缓存?4招让你彻底解决内存烦恼...
  19. html5 手机uc浏览器 复制链接,UC浏览器里任意复制粘贴文本的方法
  20. OJ 2306 Problem C Banana

热门文章

  1. 实现单片机通过传感器获取信息,并且将信息通过wifi模块发送信息给PC端,并在pyqt5界面上显示(PC端部分)
  2. 随着稻香河流继续奔跑 ——致2016
  3. 欧阳青C语言,[转载]恨君爱 作者 欧阳青
  4. android 文件下载
  5. pr中,视频导入后,视频画面大小显示不完整应该如何解决?
  6. 西门子PLC程序调试方法
  7. matlab系统稳态误差终值,matlab求稳态误差
  8. openSUSE 11.2 上试动Mono
  9. 分享:微信淘宝客自动查券找券返利机器人实现的原理和思路
  10. 文件系统 - 文件类型 - 二进制/文本类型