该版本已废弃,请移步:
新的单体架构版本请移步:
快速开发平台(单体架构版本)
这是一个作者自己肝了几个周从头敲到尾的项目,作为自己平时开发用。
配套的后台管理界面项目请见:通用后台管理
作者集成了许多常见的应用开发的框架,编写了一些常用的接口。
例如RBAC权限管理、邮件发送、图形验证码、代码生成器……
微服务版本请见微服务版本
配套前端界面预览
开发环境
这是作者的开发环境,请参考再选择自己的版本。
MySQL
8.0.22Redis
6.09Maven
3.6.3JDK
1.8
特性
- 项目结构清晰的分层,每个模块目标明确,代码注释详细,可以清晰的明白每个模块和类的作用。
- 集成了常见的应用开发的框架,加入了许多的常见配置,并注册到了
IOC
容器中,使用时直接@Autowired
即可。 - 提供了常见的API接口,如文件上传、图形验证码、邮件发送……等,无需再次开发。
- 每一个服务都提供了接口和实现类,按统一的命名方式,可以轻松的替换和注入使用。
RBAC
基于角色的权限认证,剔除了Session
,自定义了一系列的验证处理,信息权限存入Redis
,无需担心集群部署的会话共享问题。WebSocket
集成,提供了接口可以注入轻松发送,搭配了Redis
的订阅发布,集群状态下也无需担心连接发送不到的问题。代码生成器
可以一键生成实体类
、映射类
、xml文件
、服务接口
、服务实现类
、控制器
、前端数据表页面
、API文件
等等,使用的模板引擎,可以自定义自己的代码生成工具。
技术
我相信这些技术大家都耳熟能详了,我也不再说明每个框架的具体用途,所以就只是简单列举一下比较主要的几个框架,更多详情的依赖库请参考pom
文件。
Lombok
、Druid
、Redis
、Spring Boot
、Spring Security
、Mybatis Plus
、Knife4j
、Free Marker
特殊说明一下,很多都是Spring
的Starter
,没有写全称,官方提供的Starter
更方便,这样不会增加复杂性。
说明
写这个脚手架的时候,更多的是考虑到了通用性和扩展性的问题。
通用性:一定要是几乎所有后端都会用到的功能才会加入进来,所以短信发送、微信支付宝之类的代码量不多,作者考虑了过后还是决定不加入。
扩展性:虽然是单体架构,但是支持集群部署。
举个例子,Spring Security
使用Session
作为权限的附着点,而项目里自定义了Spring Security
的验证机制,关闭了Session
,使用AccessToken
和RefreshToken
,存储在Redis
中,自定义了TokenFilter
来为每一个携带Token
的请求,附上权限信息。这样即便是在集群状态下也不会影响到他们的权限控制。
项目结构(自底向上)
项目是聚合工程,我会自底向上地解释每个模块的用途。
machine-geek-common
:这个模块是用来放置一些自己写的工具类,或者一些无关于Web开发,比较通用的功能函数等。machine-geek-framework
:这个模块是用来集成框架的,里面有大量的Maven框架导包,然后有一些常见的框架配置类。machine-geek-system
:这个模块内容比较多,使用来实现系统功能的,例如安全配置、WebSocket、全局异常处理,代码生成器、邮件服务……,这个项目的代码几乎都在这个地方。machine-geek-business
:这个模块是用来预留基于这个项目扩展的业务代码,这样可以很好的与系统原有的功能模块区分开。machine-geek-api
:这个模块的内容是提供给前端接口使用的,也包含了一些常见的接口,例如:文件上传、图形验证码、Token刷新等。machine-geek-application
:这个模块作为最终打包的出口,加入了DevTool
工具,和SpringBoot
的打包模块,yml
文件的配置。
关于作者
喜欢的话就Star一下吧!
也可以逛逛作者博客
和其他的项目作者Github
如果这个项目有帮助到您就请作者喝一杯咖啡吧!