项目地址
https://gitee.com/hugo110/springboot-boot
ps
随着不断的开发与学习,渐渐的积累了一些项目中的通用模块,于是打算把这些模块写成具体的项目,刚好springboot比较流行,所以参考开源项目guns,ruoyi,以及公司项目,初步打算写一个 快速开发的小平台,也适合在后面的私单开发中更加快速
目标
1.整理着三年的经验学习到的技术以及关于web的公共的技术进行整理
2.后台项目设计通用模块配合代码生成器做一个快速开发的脚手架
3.完善整理springboot技术
好处 (核心,有了这个接个小私单,刷刷的写完赚钱啊,我们最缺钱和女朋友了不是吗?)
说一下,这个项目我打算打造什么好处吧
- 搭建成功后,基础功能,部门角色,用户,登陆日志,操作日志,错误日志,监控,直接复用.
- 非业务代码直接代码生成器生成,我算了下大概节省30%的重复代码编写时间,代码规范,又剩下时间学习,和同龄人一步步拉开差距
- 对项目有一个从开始到结束的全局观,摆脱自己老是处于开发业务代码的地位
- 对通用技术的封装,改造插件。
技术选型
1.后端
springboot
springmvc
mybatis
mybatis-plus
shiro
Apache commons系列项目
druid
mysql
quartz
poi
itext
beetl
2.前端
bootstrap或者layui
jquery
underscore
jQuery Validate
intro.js
用户引导
echarts
展示一些性能分析等等
jquery.form
ueditor
3.质量保障
sonar
4.快速开发
len代码生成器
规范文档
大多数参考阿里巴巴手册
项目大纲
这边的话,目前只是暂定一些主要的目录,后期在写文章中,再进行相应的调整,但是大体不会偏离,在整个系列写完会更新这个目录,并添加对应的链接
后台
1.搭建基础springboot项目能够启动
介绍操作环境
2.集成springmvc可以网页访问成功
3.集成mybatis+mybatis-plus+druid+mysql实现简单的用户增删改查
参考gen提前设计好用户,角色,权限,部门的表
引入commons-config进行热加载配置
引入lombok 记录日志和减少model的getset
引入commons-codes实现密码和随机盐加密
引入commons-lang进行通用工具类的验证
4.集成bootstrap一个框架实现web端的一个用户的增删改查
抽离高频使用工具类
引入热部署
引入aop,实现快速调试
正则常量bean和全局常量抽离
引入日期控件增加日期范围查询
引入jQuery Validate进行前端数据校验
引入select2达到select支持搜索,或者引入其他select插件保证样式的兼容
5.集成shiro打造登录功能
引入开源验证码生成
6.用户管理增加冻结,解决冻结,重置密码功能
7.新增部门功能,并完善用户的部门功能
公共模块html抽离,引入beetl进行页面的静态化的保障
8.新增权限功能,通过url控制功能权限
9.新增角色功能,完善用户全部功能
10.完善回顾整理
新增功能权限自动添加到权限表中
并且超级管理员自动拥有这个权限
11.采用len代码生成器,打造tree和table模板
12.增加登录日志功能
13.增加业务日志功能
引入自定义错误工具类,达到错误问题友好展示
增加性能分析功能模块
引入mybatis-plus的sql分析插件
druid的页面
jvm监控
访问频率监控
定时扫描删除过期日志
14.增加全局异常梳理,增加404页面
15.整理回顾,树立通用版本v1.0
16.设计新闻表和菜单表关联
并且分类访问采用占位符方式访问,做到权限 和灵活控制新闻分离
17.新闻的简单的增删改查
18.新闻内容采用ueditor编辑器
html的代码的转移与反转,java和js采用一致
js采用underscore
19.打造新闻图片上传和通用图片展示接口
缩略图与图片放大展示
20.打造新闻图片的附件上传通用接口和下载
在线预览文档
21.完善补充功能,建立v1.1
21.数据冷热备份
引入quartz定时执行脚本
引入commons-exec简化操作脚本命令
开源备份工具了解
定时扫描删除过期数据备份
22.通用功能-excel根据对象导入与生成
23.通用功能-json根据对象导入与生成
24.通用功能-xml根据对象导入与生成
25.通用功能根据模板生成word
26.通用功能根据模板生成pdf
27.通用邮件功能
28.通用短信功能
29.图片处理工具类
背景图
水印
30.完善回顾 建立v1.2分支
31.开源组件常用功能介绍
32.其他的补充
前台
1.设计404页面
2.设计前台的新闻对应的菜单和内容展示
3.首页引入轮播图和子模块
4.引入quartz +beetl 首页模板定时静态化