依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 81|回复: 0

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

[复制链接] 主动推送

9738

主题

9790

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10676
发表于 2024-6-7 10:43:51 | 显示全部楼层 |阅读模式
java新一代代码生成器,像Jenkins打包一样生成代码,协作方便
简介
新一代代码生成器,像jenkins打包一样生成代码,团队协作方便,代码支持增量生成,根据框架模块化管理;提供模板开发接口自由定义自己的模板,生成70%的代码,支持docker 启动 ,快速部署。
特点
像Jenkins 打包一样的方式来生成自己的代码,ai-code 与其他开源的完整项目不同点在于技术整合框架的抽象,mvc的模型抽象,我们有这样的场景,有新的业务需求,用同样的技术框架,通常做法可能就是找一个项目然后删删改改提取 出来一个较为干净的框架,然后把新的业务模型,实体类,接口等等重新声明,创建在此基础上再做很多CRUD的编码,有时候我们很反感重复这些,但是又不得不做,通常做这些毫无意义又无聊 同意请举手,于是乎有没有办法做一个工具出来让新的业务模型设计好后拿到sql脚本 通过工具可以选择各种不同的技术框架组合,就像spring boot一样整合技术在一起,但是又 可以自动把mybatis mapper,dao/dto,service,ctrl,ui等等通用功能自动开发好呢?把常用的工具,加密算法等等通用的自动集成进去呢?比如swagger,gradle,maven等等 答案是肯定的ai-code就是这个思路,整合有给你定制的可能,业务随意变化,只要拿到sql脚本一切就是动动手指,点击生成,再也不用搞来搞去那些重复的不能再重复的无聊工作了。 这就是ai-code的基本思路和思想;
再来看下通常的开源思路是什么呢? 完整项目,比如RBAC模型下的管理系统,有权限,区域,部门,日志等等,这些无可厚非确实通用,但毕竟如果要和自己的项目融合是要调整的,而且编码习惯不同, 设计规则可能不满意,维护过慢等等问题,但是也是可以使用的,于是乎就有了各种 商城开源,权限管理开源,区域管理开源,可以关注学习没问题,非常棒,甚至直接用。
两种思路从不同的角度来看待重用问题,ai-code 只希望抛砖引玉,让抽象思维,整合思维,服务未来思维体现出来,期待更好地项目出现,基于ai-code,期待大家贡献 技术模板,让那个更多人从中受益,感谢大家的贡献。
模板引擎
目前支持一下模板引擎:
1.freemarker
2.beetl
使用方法数据库:
默认采用 h2 数据库 兼容 mysql 语句模式;
  1. 启动后维护地址:
  2. http://127.0.0.1:8080/h2
  3. 账号密码:sa/sa
  4. 地址:/tmp/aicode
复制代码
修改完毕后可以直接启动,启动默认为8080端口 浏览器中打开输入:http://127.0.0.1:8080/index.html 默认账户:admin 888888尝试登录,你可以在数据库中修改次账户数据表明为account

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

参考已有项目的效果

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便
模板仓库添加
在你登陆后你可以添加自己的模板仓库

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

创建项目
有了模板之后可以创业见一个项目,然后按照下一步的指引操作下去即可完成操作 (此处为gif动画需要你登录账户才能看,osc的限制)

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便
构建项目
构建很简单,点击即可自动完成对项目的生成,下载模板,生成代码,提交到git仓库,这个地方的日志输出是websocket,存储文档log可以反复查看 十分方便 (此处为gif动画需要你登录账户才能看,osc的限制)

之后点击构建项目 按钮就开始进行想的自动构建了
启动项目
当你生成项目代码后你可以在你的git svn仓库中找到源码,也可以直接下载源码自行导入到开发工具中,然后运行,这里需要注意的是配置文件和 数据库的连接一定要修改,否则默认的将无法使用,一下为测试演示的界面图供参考 代码界面和运行启动项目 我用的是Idea 最好用的java开发工具,没有之一,开发用就用最好的工具,不将就

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便
swagger界面如下,我只用了一个简单的表来演示,你的要有多复杂就有多复杂均可以实现
如果你体验了高效的代码生成和抽象思维把规律的重复的代码进行模板化后可以服务你未来更久的时间,那时候就体验到,编程除了用coding还可以用设计 来编码,所谓武功至高境界就是无招胜有招 就是这个意思,让代码服务你更久才有时间学习更多的技术和知识,让今天的一行代码在未来体现出更大价 值才是我们要思考和做的,期待大家的分享和模板的壮大,目前正在整理rabbitmq, kafka, rocketmq的分布式,微服务框架模板整合,后面将会 更好玩哦
docker 启动方式(推荐)
docker 依赖dockerhub 镜像(意思是你的网络要支持访问哦,大家明白哈,搞不定的加群),大家可以通过docker的常规命令pull run 即可,注意:docker镜像 中不包含数据库,数据库脚本请从项目中下载进行初始化,数据库名称请使用ai_code命名,以下docker命令操作 dockerhub 详细操作说明 https://hub.docker.com/r/hegaoye/aicode
直接使用下面的命令即可搞定,数据库与程序自动link在一起,方便简单
  1. #搜索查看aicode的镜像是否存在
  2. docker search aicode

  3. #拉取aicode的镜像 hegaoye/aicode:20210613
  4. docker pull hegaoye/aicode:20210613

  5. #启动容器,注意 host,username,passowrd 要进行修改成自己的mysql主机 使用link 连接aicode-db
  6. docker run  -p 8080:8080 --name aicode --restart always -d  hegaoye/20210613

  7. #查看日志
  8. docker logs --tail 1000 -f aicode

  9. #重启,关闭,启动容器命令
  10. docker restart|stop|start aicode
复制代码



K8S 配置参考
  1. ###创建aicode####
  2. apiVersion: apps/v1
  3. kind: Deployment
  4. metadata:
  5.   name: aicode
  6.   labels:
  7.     app: aicode
  8. spec:
  9.   selector:
  10.     matchLabels:
  11.       app: aicode
  12.   template:
  13.     metadata:
  14.       labels:
  15.         app: aicode
  16.     spec:
  17.       containers:
  18.         - name: aicode
  19.           image: hegaoye/aicode:20210613
  20.           ports:
  21.             - containerPort: 8080
  22.       #注意 以下配置为发布在master主机上否则无法启动,如果有node节点可以删除此配置
  23.       tolerations:
  24.         - key: node-role.kubernetes.io/master
  25.           operator: Exists
  26.           effect: NoSchedule


  27. ---

  28. apiVersion: v1
  29. kind: Service
  30. metadata:
  31.   name: aicode-svc
  32. spec:
  33.   ports:
  34.     - port: 20210613
  35.       targetPort: 20210613
  36.       nodePort: 30880
  37.   type: NodePort
  38.   selector:
  39.     app: aicode
复制代码



本地部署 nginx配置
  1. upstream api{
  2.    ip_hash;
  3.    server 192.168.0.215:8080;
  4. }

  5. server {
  6.         listen       80;
  7.         server_name  hegaoye.com www.hegaoye.com;
  8.         gzip on;
  9.         gzip_min_length  5k;
  10.         gzip_buffers     4 16k;
  11.         gzip_http_version 1.0;
  12.         gzip_comp_level 3;
  13.         gzip_types     image/jpeg image/gif image/png image/ico text/plain application/x-javascript text/css text/javascript application/apk  application/json;
  14.         gzip_vary on;
  15.         gzip_disable "MSIE [1-6].";
  16.         charset utf-8;
  17.         add_header Access-Control-Allow-Origin *;
  18.         add_header Access-Control-Allow-Methods 'GET,POST';
  19.         add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';        
  20.         
  21.        location / {
  22.            proxy_pass   http://api;
  23.            proxy_set_header Host $host;
  24.            proxy_set_header X-Real-IP $remote_addr;
  25.            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  26.               
  27.            proxy_http_version 1.1;
  28.            proxy_set_header Upgrade $http_upgrade;
  29.            proxy_set_header Connection "Upgrade";
  30.            proxy_connect_timeout 4s;
  31.            proxy_read_timeout 12h;
  32.            proxy_send_timeout 12s;
  33.        }
  34. }
复制代码



编写模板说明:
模板语法采用freemarker编写,定义了一个实体类可以在项目io.aicode.base.core.TemplateData 下找到此类,大致的内置变量可以如下图

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便
如果你需要编写自己的模板按照这里面的规则即可完成编写,如果需要参考已有模板请看顶部的连接分享你可以根据自己的需求修改一个出来然后也分享出来让大家 享受你的技术带来的便捷。
UML参考
uml信息可以自己打开vpp文件查看详细,仅仅放两张用于参考

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

模板长啥样?
模块化模板样貌
Ctrl模板类
mybatis sql 模板注意观察有关联关系哦
前端模板抽离样貌
项目技术点
  • spring mvc
  • mybatis H2
  • freemarker
  • websocket
  • java reflection
  • angular framework
  • git,svn client
  • jwt
  • gradle
注意
关于自己的sql脚本比如如下
  1. /*==============================================================*/
  2. /* Table: goods                                                 */
  3. /*==============================================================*/
  4. create table goods
  5. (
  6.    id                   bigint not null auto_increment,
  7.    code                 varchar(64) not null comment '编码',
  8.    name                 varchar(32) comment '商品名',
  9.    stock                bigint comment '库存',
  10.    status               varchar(32) comment '状态',
  11.    primary key (id, code)
  12. );

  13. alter table goods comment '产品';

  14. /*==============================================================*/
  15. /* Table: "order"                                               */
  16. /*==============================================================*/
  17. create table "order"
  18. (
  19.    id                   bigint not null auto_increment,
  20.    code                 varchar(64) not null comment '编码',
  21.    order_no             varchar(32) not null comment '订单号',   
  22.    primary key (id, code, order_no)
  23. );

  24. alter table "order" comment '订单';
复制代码



这个sql在执行中失败,失败的原因在于 "order" 双引号不合法将无法执行,所以请检查后修改为order 的合法sql语句,最好在生成前执行验证sql 脚本的正确性,比如下面的


  1. /*==============================================================*/
  2. /* Table: order                                               */
  3. /*==============================================================*/
  4. create table `order`
  5. (
  6.    id                   bigint not null auto_increment,
  7.    code                 varchar(64) not null comment '编码',
  8.    order_no             varchar(32) not null comment '订单号',   
  9.    primary key (id, code, order_no)
  10. );

  11. alter table `order` comment '订单';
复制代码

去处后即可合法使用,一定要保障sql可以正常执行再用来跑代码,否则会失败




游客,本帖隐藏的内容需要积分高于 2 才可浏览,您当前积分为 0

提取码下载:
文件名称:提取码下载.txt 
下载次数:0  文件大小:14 Bytes  售价:59金钱 [记录]
下载权限: 不限 [购买VIP]   [充值]   [在线充值]   【VIP会员5折;永久VIP免费】
安全检测,请放心下载





java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

java新一代代码生成器,像Jenkins打包一样生成代码,协作方便

相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员5折;永久VIP免费
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|小黑屋|依星资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2024-9-28 16:27

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

快速回复 返回顶部 返回列表