1、基础开发框架

1.1 什么是基础开发框架?

基础框架可以理解为建立一个项目所需的基础框架,这个基础框架为凝聚了之前开发项目的通用、共性的方法、工具、技术等组成的代码包。

现有我们公司有两类基础框架:
(1)基于web应用的基础框架

(2)基于数据迁移场景的基础框架

大家可根据具体的实际场景制定试用自己的基础框架。

1.2 为什么需要基础框架?

做开发的同事可能都知道,每次研究一项新技术含定时任务、权限、文件上传等这类都需要花时间研究与调试。但是只要第一次研究通了,后面开发效率就快了。

若对以往的项目不进行总结:

A写了定时任务相关代码 B 写了文件上传相关代码 C写了权限相关代码

现有D项目需要同时有定时任务、文件上传、权限管理相关功能,如何处理?

传统方式:逐一搜寻A、B、C复制相关代码,此效率极为低下,因此基础框架就有了必要性。

基础框架方式:封装相关代码,形成common层,并搭建模板项目作为基础框架供其他项目调用

1.3 现有基础框架有哪些?

力软、JEECGBOOT、若依、芋道。其中力软为付费产品,JEECGBOOT的码云star为4.1k,若依的码云star为30.9k,芋道的码云star为13.8K。综合可见芋道和若依框架分值相对较高。

2 若依框架

官方网站:RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框架|Java|SpringBoot|SrpingBoot2.0|SrpingCloud|Alibaba|MyBatis|Shiro|OAuth2.0|Thymeleaf|BootStrap|Vue|Element-UI||www.ruoyi.viphttp://www.ruoyi.vip/

主要包含:RuoYi RuoYi-Vue RuoYi-Cloud,分别为快速开发版,前后端分离版,微服务版。

生态齐全,并拥有拓展生态含uniapp版本、pgsql版本、mybaitplus版本、国产数据库版本、react、ant desing版本等

2.1前端页面

  • 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  • 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
  • 岗位管理:配置系统用户所属担任职务。
  • 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
  • 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  • 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  • 参数管理:对系统动态配置常用参数。
  • 通知公告:系统通知公告信息发布维护。
  • 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  • 登录日志:系统登录日志记录查询包含登录异常。
  • 在线用户:当前系统中活跃用户状态监控。
  • 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
  • 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
  • 系统接口:根据业务代码自动生成相关的api接口文档。
  • 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
  • 缓存监控:对系统的缓存信息查询,命令统计等。
  • 在线构建器:拖动表单元素生成相应的Vue代码。
  • 连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。

2.2系统架构

主要层及架构

1、系统环境

  • Java EE 8
  • Servlet 3.0
  • Apache Maven 3

2、主框架

  • Spring Boot 2.2.x
  • Spring Framework 5.2.x
  • Spring Security 5.2.x

3、持久层

  • Apache MyBatis 3.5.x
  • Hibernate Validation 6.0.x
  • Alibaba Druid 1.2.x

4、视图层

  • Vue 2.6.x
  • Axios 0.21.x
  • Element 2.15.x

主要的工具如下

3、芋道框架

项目地址

ruoyi-vue-pro:官方推荐RuoYi-Vue 全新 Pro 版本,优化重构所有功能。基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 微信小程序,支持 RBAC 动态权限、数据权限、SaaS 多租户、Flowable 工作流、三方登录、支付、短信、商城等功能。你的 ⭐️ Star ⭐️,是作者生发的动力!https://gitee.com/zhijiantianya/ruoyi-vue-pro” />

3.2 功能清单

  • 后端采用 Spring Boot、MySQL + MyBatis Plus、Redis + Redisson。
  • 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等
  • 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统。
  • 支持加载动态权限菜单,按钮级别权限控制,本地缓存提升性能。
  • 支持 SaaS 多租户系统,可自定义每个租户的权限,提供透明化的多租户底层封装。
  • 工作流使用 Flowable,支持动态表单、在线设计流程、会签 / 或签、多种任务分配方式。
  • 高效率开发,使用代码生成器可以一键生成前后端代码 + 单元测试 + Swagger 接口文档 + Validator 参数校验。
  • 集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款。
  • 集成阿里云、腾讯云、云片等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务。

4 框架对比

4.1 若依框架优势

1、功能简洁包含项目需要的最小框架:定时任务、系统参数、字典、通知公告、代码生成,启动项目速度快

2、具备完整的生态,查看其他语言代码方便

4.2 芋道框架优势

1、功能模块多,集成mapstruct、mybaitplus、Oauth2 、短信、错误码,启动速度慢

2、集成特定场景应用:支付、工作流

3、框架复杂,一些场景排查问题较难,有严格的VO 与APP\ADMIN接口区分,以及业务端和内部接口区分。代码框架接口清晰便捷明显,系统之间相互调用较多。

4、自动编写单元测试,每次打包时会利用的sqlite数据库进行单元测试。

5 框架选型

建议小团队使用若依框架,以下内容为亲自使用总结

(1)开发速度快,问题定位快

(2)可寻找任何语言开源替代(例如vue3的框架可能在IE9下不支持,需要换VUE2或者其他框架),或者项目团队成员只会net或python语言,这些都可以找到替代产品;国产化软件也可以找到相关替代。

建议大团队使用芋道框架

(1)APP端和pc端严格区分;业务API与前端接口严格区分

(2)有较多开源的拓展功能,集成了Hutool工具包,支持包含文件上传、小程序登录三方登录、工作流、短信、多租户、支付等功能。

(3)初始内置多种数据库脚本,可天然支持多种数据库含国产数据库。

6、若依基础框架项目分享

目前用若依的mybaitplus做了两个示例,分别包含单表查询、多表查询的案例。中间使用了代码生成方法。

6.1单表查询

(1)首先新建数据库表

(2)点开代码生成页面,配置列表、查询、搜索字段,对于字典或者时间范围类型等条件可对应进行配置

(3)生成代码,前端拷贝、后端拷贝。

6.2多表联合查询

(1)后端首先以单表模式生成增删改查

(2)在对应controller增加新的查询接口

(3)如果是表格页面,则前端复制页面的vue和api,直接进行修改及编写;表单可借助form-generator进行搭建。

具体若依案例项目含(单表及多表案例)的项目代码见链接.

若依mybaitplus基础框架