打造Spring Boot应用时常用到的轮子
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
文章目录
前言
如何打造一款完备的、可复制的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的开源项目
- 电商系统
- CRMEB电商系统
- 心脏跳动旗下newbee-mall电商系列产品
- mall4j
- mall4cloud
- PublicCMS
- 林间有风Java后端
- 林间有风vue3前端
- 一个现代化社区, Java论坛系统
- pybbs论坛
- sym社区系统
Java awesome
- awesome-java
- Java资源大全中文版
- 非常棒的 Java 开源项目集合
- https://blog.csdn.net/weixin_53227758/article/details/125451018?