您现在的位置是:首页 >技术交流 >企业级通用低代码开发平台——一二三应用开发平台发布1.0版本,ssm+MyBatisPlus+vue-element-plus-admin+uni-app网站首页技术交流
企业级通用低代码开发平台——一二三应用开发平台发布1.0版本,ssm+MyBatisPlus+vue-element-plus-admin+uni-app
平台由来
早些时候,也就是三月初的时候,定了一个长期计划,即再启程,研发应用开发平台(详见本专栏第一篇https://blog.csdn.net/seawaving/article/details/129334330)。
经过大概两个月的努力,低代码配置功能部分完成了雏形,并使用配置功能,将系统管理模块实现出来了,相当于进行了初步验证,在实现过程中低代码配置部分也进行了完善和改进。
现正式发布1.0版本。
平台完全开源,基于MIT协议,选用的都是主流开源框架与功能组件。
地址:https://gitee.com/popsoft/abc-development-platform
平台介绍
企业级通用低代码开发平台,前后端分离架构,单工程,多模块,部署形态为单体应用。
前端基于vue3.2.47,element-plus 2.1.0,前端框架vue-element-plus-admin深度整合改造。
后端SSM+MybatisPlus,使用SpringBoot 2.3.0。
数据库使用MySql 5.7.36.
重度使用MybatisPlus,包括主键策略、逻辑删除、乐观锁、自动填充、数据分页、CURD接口、条件构造器等, 二次封装和扩展代码生成器,实现entity、dao、service、controller、vo及前端vue页面生成。
整体架构图如下:
技术选型,详见专栏博客:https://blog.csdn.net/seawaving/article/details/130015830
整体展示
登录页,沿用前端框架vue-elment-plus-admin,功能做了整合,UI尚未调整
系统首页,同上,暂时保留框架分析页,后面会改造替换掉
系统管理模块——组织机构
新增页面与选择页面
系统管理模块——用户
系统管理模块——用户组(即通常所说的角色)
系统管理模块——数据字典
系统管理模块——权限项
系统管理模块——系统参数
系统管理模块——系统日志(开发阶段把AOP停掉了,所以没数据)
实体管理模块——模块
实体管理模块——实体
实体管理模块——实体模型
实体管理模块——实体视图
列表视图
新增视图
后端架构
首先分成两部分,一部分是平台内核模块,命名规则是platform+模块功能名称;另一部分是能力扩展模块,命名规则是platform-boot-starter+模块功能名称。
platform-common作为公用基础,主要包括工具类、公用注解、公共父类、公共常量、公共枚举值,与前端UI交互定义的vo类,该模块为最基础的模块,无前置依赖。
platform-system是平台最核心的模块,主要包括组织机构、人员、角色、权限、日志、系统参数这些实体和服务的实现,需要注意的是,权限控制、日志记录,并不是在该模块实现,而是在platform-framework平台框架中实现,该模块依赖于platform-common。
platform-framework是平台框架,负责身份认证、权限控制、全局配置、数据分页、日志处理、自动填充(创建人、创建时间、修改人、修改时间),因为身份认证、权限控制等功能,不可避免需要使用处于platform-system模块中的人员、角色等实体和服务,因此依赖于platform-system。
platform-support是一个业务支撑模块,基于技术组件进行功能设计与封装,实现一些通用的功能设计,更方便业务逻辑的实现,提供附件管理、内容模板(用于短信、邮件、消息)、通讯组、单据流水号、门户等功能。这些支撑模块同样需要位于platform-system模块中的人员、组织机构等实体和服务,因此依赖于platform-system。
platform-boot-starter:平台启动项目,整合平台基础功能,类似于spring-boot-starter,业务系统引入该包进行依赖。该模块自身没有实体与服务,而是汇总整合,把platform-framework引用进来,同时进行配置。配置分两方面,一方面是做一个配置类,加一些注解(如:@EnableRetry、@ServletComponentScan、@EnableTransactionManagement),使用开发平台实现的业务系统,就不需要在启动类上重复添加这些注解;另一方面,是位于yml配置文件中的配置信息,也分为两部分,一部分是三方组件自身的,如数据源、连接池、redis、quartz、logback,另一方面是自定义的系统参数,如用户默认密码、导出excel数据的批次最大行数量。
platform-boot-starter-demo:示例项目,实际是模拟业务系统如何使用开发平台,用于平台自身功能开发与调试。
右侧四个模块,比较好理解,通常是对第三方组件的封装与整合,依赖于公共基础模块platform-common,这些模块可以不断扩展的,业务系统按需引入即可,这样就实现了核心模块必选、扩展模块可选的目的。
platform-boot-starter-mail:邮件
platform-boot-starter-oss: 对象存储
platform-boot-starter-scheduler:任务调度
platform-boot-starter-notification:消息通知
对于扩展模块,平台的核心模块实际也可能会用到,例如platform-support中的附件功能,就会用到platform-boot-starter-oss;platform-system中的自动解锁用户功能,就会用到platform-boot-starter-scheduler。
详见专栏博文:https://blog.csdn.net/seawaving/article/details/129425316
如何运行
1. 初始化数据库
执行根目录下init.sql,创建名字为abc的数据库。
2 .前端
nodejs 18.14.2(未测试版本兼容性,理论上更高版本可用,低版本可能兼容)
使用vscode打开platform-web目录,执行pnpm install安装npm module
执行dev脚本,默认打开localhost:4000
3 .后端
标准SpringBoot项目,多模块,启动类位于platform-boot-starter-demo下,默认端口8080。
整体计划
1.实现系统内核,打通前后端,系统能运转起来
2.实现低代码配置功能,这是后续开发的孵化器
3.基于低代码配置+高代码辅助实现系统管理模块
4.整合SpringSecurity框架,实现身份认证与权限控制
5.迁移自己已实现的通用接口平台,作为开发平台的一部分
6.集成功能组件,扩展技术能力,如quartz、mail、oss、echarts
7.基于技术组件封装业务功能组件
8.实现移动端接入
9.整合工作流
当前进度:
第1项系统内核已完成
第2项完成60%,低代码配置功能可用,后续细节持续完善。
第3项已完成,基于低代码配置功能实现。
第4项已完成。
关于起名
关于名字,实际想了好久好久。日常设计开发中,类名、变量名,起名都会感觉困难,更不用说一个平台。
这是自己的孩子,需要起一个好名字。
根据咱们行业惯例,命名需要具备业务含义:)。
作为低代码配置平台,应用的孵化器,首先锚定了一个“元”字,然后想在前面补一个字。陆陆续续想过一些名字,比如开元、创元,都体现不出来想表达的意思来。一度考虑使用华元,但这名字太大气了,这个平台恐怕撑不起这么大的台面来。
中间想到了一句古语“一生二,二生三,三生万物”,这才是我想要的意境。但是,三元作为一个品牌名,已经被使用,只能放弃。
百度查了下,没找到自己想要的名字。想了想现有的平台命名,比如宜搭、若依、人人、JEECG,也没得到启发。进一步想,是不是可以放弃上面的含义,参照下那些知名企业,比如苹果、小米……还是感觉悬,这些不是因为名字起得好而知名度高,而是自身发展的好,逻辑是反的。
突然有一天,灵光一现,回到最初的念头,“一生二,二生三,三生万物”,干脆就叫一二三吧,英文名字也有了,ABC。三个字的名字,虽然不如两个字的顺口,但总算有了自己想要的味道。简单点,普通点,挺好。
开发平台资料
平台名称:一二三开发平台
简介: 企业级通用开发平台
设计资料:csdn专栏
开源地址:Gitee
开源协议:MIT
欢迎收藏、点赞、评论,你的支持是我前行的动力。