文章目录
- 前言
- 万能的SpringBoot应用包含哪些组件?
- 主要技术点
- SpringBoot应用常用的开源组件
- Spring内置工具类
- 一些完整的SpringBoot的开源项目
- 开源博客和社区
- 优秀CMS
- 开源电商
- Java awesome
前言
如何打造一款完备的、可复制的SpringBoot应用?
所谓完备,就是功能齐全,包含用户登录和权限管理,基本对象的管理,这个基本对象可以是商品,也可以是博客,有缓存,有定时任务,有上传下载,有API。简而言之,涵盖了常规web应用的方方面面。
可复制,就是我这个应用摇身一变,可以是博客系统,可以是CMS,也可以是论坛和电子商城。
有时,把符合上述特征的应用成为万能应用。某宝上经常有小公司出售这类应用。
万能的SpringBoot应用包含哪些组件?
名称 | 功能 | |
---|---|---|
1 | 代码生成器 | 正反双向+快速表单构建器freemaker模版技术, 0行代码,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块 |
2 | 多数据源 | (支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源 |
3 | druid | 阿里数据库连接池 |
4 | shiro | 安全权限框架(菜单权限和按钮权限) |
5 | ehcache | 缓存框架 |
6 | 代码编辑器 | 在线模版编辑,仿开发工具编辑器 |
7 | 摄像头功能 | 调用摄像头拍照, 自定义裁剪编辑头像,头像图片色度调节 |
8 | websocket | 及时站内信并声音提醒、实时在线管理、websocket及时刷新页面(完胜ajax技术)更新即时通讯功能,支持好友,群组,发图片、文件,消息声音提醒,离线消息, 保留聊天记录 |
其它系统模块
名称 | 功能 | |
---|---|---|
1 | 权限管理 | 点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限 角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限。(一个用户可以多个角色) 按钮权限: 给角色分配按钮权限。 |
2 | 按钮管理 | 自定义按钮管理,维护按钮shiro权限标识等 |
3 | 菜单管理 | N级别自定义菜单,选择菜单图标,菜单状态显示隐藏(递归处理) |
4 | 数据字典 | N级别,支持多级别分类。内设编号,排序等 |
5 | 日志管理 | 记录用户登录退出和一些重要操作记录 |
6 | 在线管理 | websocket技术,实时检测在线用户列表,统计在线人数,可强制用户下线 同一用户只能在一个客户端登录 |
7 | 系统用户 | 对各个基本的用户增删改查,导出到excel表格,批量删除 |
8 | 代码生成 | 生成完整的模块代码,并保留生成记录模版,可复用 (超强悍开发利器) 正向生成: 生成完整的模块,页面、处理类、mapper层、service层、myabaits的xml 建表的sql脚本等 反向生成: 任意连接其它数据库(mysql、oracle、sqlserver),根据表反射生成本系统的模块 |
9 | 模版管理 | 代码在线编辑器,管理模版,保存编辑记录,一键还原,代码生成器如虎添翼 |
10 | 性能监控 | 监控整个系统的性能,SQL监控,SQL防火墙,URL监控,SPRING监控,SESSION监控等 |
11 | 系统设置 | 修改系统名称,每页显示条数, 邮件服务配置,站内信配置 |
12 | 站内信 | 收信箱和发信箱,websocket技术通讯技术做的及时收信提醒,可配置语音提示来信,通讯模块 单聊群聊发图片发文件 离线消息保留聊天记录 |
13 | 好友管理 | 搜索、添加、删除、拉黑好友,查看好友资料 |
14 | 好友分组 | 自定义好友分组 |
15 | 我的群组 | 创建群组,搜索申请加入别人的群,踢出群成员,管理群聊天记录 |
16 | 数据库备份 | 可备份单表(sqlserver不支持)、整库,支持本地和远程备份(java界面编程技术,socket编程技术) |
17 | 备份定时器 | quartz 强大的任务调度,多线程备份数据库,任务启动关闭异步操作 |
18 | 数据库还原 | 历史备份记录,还原数据库 or 单表(sqlserver不支持),统计备份时间和文件大小 |
19 | SQL编辑器 | 强大的SQL编辑器,支持编辑语句复杂查询语句,生成动态报表,可导出excel |
20 | 菜单权限 | 分配给每个角色不同的菜单权限, 每个角色看到的菜单不同,N级别菜单 按钮权限 |
21 | 增删改查权限 | 分配具体到不同的菜单,自定义按钮管理 支持多用户分权限管理后台, 权限具体到不同的菜单不同的按钮(一个用户可以多个角色) |
主要技术点
- 导入 导出 excel 文件 (应用在系统用户中)
- 生成 word文件 (应用在代码生成器生成的doc文档)
- IO 流下载文件 (应用在代码生成器中生成后压缩成zip 文件下载)
- 代码 zip 压缩打包 (应用在代码生成器中生成后压缩成zip 文件)
- MD5加密 SHA加密(登录密码用此加密)接口加密身份校验
- 数据库连接池 阿里的 druid。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势,支持并发
- 安全框架 shiro (登录授权)(session管理)(shiro 注解菜单权限拦截)(shiro 标签按钮权限)
- freemaker模版引擎(代码生成器用)
- ehcache 自定义缓存 ,选择缓存存放目录,处理并发,增加系统性能
- tab标签页面功能,标签自由切换,不重复操作数据库(可全部关闭,关闭当前,关闭其它)
- 多数据源技术
- 调用摄像头拍照技术,图片裁剪技术 (用户头像编辑)
- 在线编辑器,仿开发工具 (代码生成器的模版编辑)
- 单群发邮件,可以发html、纯文本格式
- 根据汉字 解析汉字的全拼(拼音)和首字母(导入excel到用户表,根据用户的汉字姓名生成拼音的用户名)
- 站内信语音提醒,js控制音频播放
- java 读写 ini 配置文件
- java websocket 即时通讯技术,点对点,好友、群组,发图片文件,离线消息,保留聊天记录
- 百度富文本编辑器,可上传图片、附件
- java Quartz 任务调度 (应用在数据库定时备份模块中)
SpringBoot应用常用的开源组件
技术 | 说明 | 官网 |
---|---|---|
SpringBoot | Web应用开发框架 | https://spring.io/projects/spring-boot |
SpringSecurity | 认证和授权框架 | https://spring.io/projects/spring-security |
Shiro | 认证授权 | |
sa-token | 认证授权,更简单易用,功能强大 | |
MyBatis | ORM框架 | http://www.mybatis.org/mybatis-3/zh/index.html |
MyBatisGenerator | 数据层代码生成器 | http://www.mybatis.org/generator/index.html |
Elasticsearch | 搜索引擎 | https://github.com/elastic/elasticsearch |
RabbitMQ | 消息队列 | https://www.rabbitmq.com/ |
Redis | 内存数据存储 | https://redis.io/ |
MongoDB | NoSql数据库 | https://www.mongodb.com |
LogStash | 日志收集工具 | https://github.com/elastic/logstash |
Kibana | 日志可视化查看工具 | https://github.com/elastic/kibana |
Nginx | 静态资源服务器 | https://www.nginx.com/ |
Docker | 应用容器引擎 | https://www.docker.com |
Jenkins | 自动化部署工具 | https://github.com/jenkinsci/jenkins |
Druid | 数据库连接池 | https://github.com/alibaba/druid |
OSS | 对象存储 | https://github.com/aliyun/aliyun-oss-java-sdk |
MinIO | 对象存储 | https://github.com/minio/minio |
JWT | JWT登录支持 | https://github.com/jwtk/jjwt |
Lombok | Java语言增强库 | https://github.com/rzwitserloot/lombok |
Hutool | Java工具类库 | https://github.com/looly/hutool |
PageHelper | MyBatis物理分页插件 | http://git.oschina.net/free/Mybatis_PageHelper |
Swagger-UI | API文档生成工具 | https://github.com/swagger-api/swagger-ui |
Hibernator-Validator | 验证框架 | http://hibernate.org/validator |
Spring Security oauth2 | 2.1.5 | 认证和授权框架 |
MyBatis | 3.5.0 | ORM框架 |
MyBatisPlus | 3.1.0 | 基于mybatis,使用lambda表达式的 |
Swagger-UI | 2.9.2 | 文档生产工具 |
Hibernator-Validator | 6.0.17 | 验证框架 |
redisson | 3.10.6 | 对redis进行封装、集成分布式锁等 |
hikari | 3.2.0 | 数据库连接池 |
hikaricp | 数据库连接池管理 | |
log4j2 | 2.11.2 | 更快的log日志工具 |
fst | 2.57 | 更快的序列化和反序列化工具 |
orika | 1.5.4 | 更快的bean复制工具 |
lombok | 1.18.8 | 简化对象封装工具 |
hutool | 4.5.0 | 更适合国人的java工具集 |
swagger-bootstrap | 1.9.3 | 基于swagger,更便于国人使用的swagger ui |
Spring内置工具类
在org.springframework.util包下面,藏着许多实用类,有了它们,就无需再引入commons-io那些依赖了:
- Assert 断言工具类
- StringUtils
- ObjectUtils
- CollectionUtils
- FileCopyUtils
- ResourceUtils
- ReflectionUtils
- AopContext
一些完整的SpringBoot的开源项目
博客、论坛、社区、电子商城、CMS都是比较通用的应用,都能在github上找到很多完整的好的例子。
开源博客和社区
- halo, Star : 18.5k
- OneBlog
- 蘑菇博客
- mblog: 一款基于 Spring Boot 的博客系统,支持多用户,支持切换主题
- solo: Solo是 B3log 分布式社区的 Java 博客端节点系统, 采用的是一个叫做 Latke 的 web 框架
- 一个现代化社区, Java论坛系统
- pybbs论坛
- sym社区系统
优秀CMS
- PublicCMS
- 铭飞 / MCMS
- PB-CMS
- JavaWeb CMS
- 林间有风Java后端
- 林间有风vue3前端
开源电商
- 电商系统
- CRMEB电商系统
- 心脏跳动旗下newbee-mall电商系列产品
- mall4j
- mall4cloud
Java awesome
- awesome-java
- Java资源大全中文版
- 非常棒的 Java 开源项目集合
- https://blog.csdn.net/weixin_53227758/article/details/125451018?