打造Spring Boot应用时常用到的轮子

前言

如何打造一款完备的、可复制的SpringBoot应用?

所谓完备,就是功能齐全,包含用户登录和权限管理,基本对象的管理,这个基本对象可以是商品,也可以是博客,有缓存,有定时任务,有上传下载,有API。简而言之,涵盖了常规web应用的方方面面。

可复制,就是我这个应用摇身一变,可以是博客系统,可以是CMS,也可以是论坛和电子商城。

有时,把符合上述特征的应用成为万能应用。某宝上经常有小公司出售这类应用。

万能的SpringBoot应用包含哪些组件?

名称功能
1代码生成器正反双向+快速表单构建器freemaker模版技术, 0行代码,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块
2多数据源(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源
3druid阿里数据库连接池
4shiro安全权限框架(菜单权限和按钮权限)
5ehcache缓存框架
6代码编辑器在线模版编辑,仿开发工具编辑器
7摄像头功能调用摄像头拍照, 自定义裁剪编辑头像,头像图片色度调节
8websocket及时站内信并声音提醒、实时在线管理、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不支持),统计备份时间和文件大小
19SQL编辑器强大的SQL编辑器,支持编辑语句复杂查询语句,生成动态报表,可导出excel
20菜单权限分配给每个角色不同的菜单权限, 每个角色看到的菜单不同,N级别菜单 按钮权限
21增删改查权限分配具体到不同的菜单,自定义按钮管理 支持多用户分权限管理后台, 权限具体到不同的菜单不同的按钮(一个用户可以多个角色)

主要技术点

  1. 导入 导出 excel 文件 (应用在系统用户中)
  2. 生成 word文件 (应用在代码生成器生成的doc文档)
  3. IO 流下载文件 (应用在代码生成器中生成后压缩成zip 文件下载)
  4. 代码 zip 压缩打包 (应用在代码生成器中生成后压缩成zip 文件)
  5. MD5加密 SHA加密(登录密码用此加密)接口加密身份校验
  6. 数据库连接池 阿里的 druid。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势,支持并发
  7. 安全框架 shiro (登录授权)(session管理)(shiro 注解菜单权限拦截)(shiro 标签按钮权限)
  8. freemaker模版引擎(代码生成器用)
  9. ehcache 自定义缓存 ,选择缓存存放目录,处理并发,增加系统性能
  10. tab标签页面功能,标签自由切换,不重复操作数据库(可全部关闭,关闭当前,关闭其它)
  11. 多数据源技术
  12. 调用摄像头拍照技术,图片裁剪技术 (用户头像编辑)
  13. 在线编辑器,仿开发工具 (代码生成器的模版编辑)
  14. 单群发邮件,可以发html、纯文本格式
  15. 根据汉字 解析汉字的全拼(拼音)和首字母(导入excel到用户表,根据用户的汉字姓名生成拼音的用户名)
  16. 站内信语音提醒,js控制音频播放
  17. java 读写 ini 配置文件
  18. java websocket 即时通讯技术,点对点,好友、群组,发图片文件,离线消息,保留聊天记录
  19. 百度富文本编辑器,可上传图片、附件
  20. java Quartz 任务调度 (应用在数据库定时备份模块中)

SpringBoot应用常用的开源组件

技术说明官网
SpringBootWeb应用开发框架https://spring.io/projects/spring-boot
SpringSecurity认证和授权框架https://spring.io/projects/spring-security
Shiro认证授权
sa-token认证授权,更简单易用,功能强大
MyBatisORM框架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/
MongoDBNoSql数据库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
JWTJWT登录支持https://github.com/jwtk/jjwt
LombokJava语言增强库https://github.com/rzwitserloot/lombok
HutoolJava工具类库https://github.com/looly/hutool
PageHelperMyBatis物理分页插件http://git.oschina.net/free/Mybatis_PageHelper
Swagger-UIAPI文档生成工具https://github.com/swagger-api/swagger-ui
Hibernator-Validator验证框架http://hibernate.org/validator
Spring Security oauth22.1.5认证和授权框架
MyBatis3.5.0ORM框架
MyBatisPlus3.1.0基于mybatis,使用lambda表达式的
Swagger-UI2.9.2文档生产工具
Hibernator-Validator6.0.17验证框架
redisson3.10.6对redis进行封装、集成分布式锁等
hikari3.2.0数据库连接池
hikaricp数据库连接池管理
log4j22.11.2更快的log日志工具
fst2.57更快的序列化和反序列化工具
orika1.5.4更快的bean复制工具
lombok1.18.8简化对象封装工具
hutool4.5.0更适合国人的java工具集
swagger-bootstrap1.9.3基于swagger,更便于国人使用的swagger ui

Spring内置工具类

在org.springframework.util包下面,藏着许多实用类,有了它们,就无需再引入commons-io那些依赖了:

  • Assert 断言工具类
  • StringUtils
  • ObjectUtils
  • CollectionUtils
  • FileCopyUtils
  • ResourceUtils
  • ReflectionUtils
  • AopContext

一些完整的SpringBoot的开源项目

博客、论坛、社区、电子商城、CMS都是比较通用的应用,都能在github上找到很多完整的好的例子。

开源博客和社区

优秀CMS

开源电商

Java awesome

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北极象

如果觉得对您有帮助,鼓励一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值