项目下载地址:
https://gitee.com/gourd-hu/spring-cloud-plus
项目结构截图:
#### 项目介绍
本项目主要以spring cloud alibaba组件整合一些常用框架来搭建一个简单易用的项目。
组件模块:
---------------------------------------
需要哪个组件功能,只需要增加配置和依赖jar包即可;gourd-base:基础模块,项目所需的基础依赖、公共配置、及工具类等。
新建一个项目,只需要maven依赖此jar包,就可以启动一个完整项目。
gourd-rbac:权限用户模块,用户管理,权限分配等;
gourd-file: 文件基础模块,包括文件上传、下载、预览,Excel导入导出等。
gourd-notice:通讯模块,包括邮件、短信、websocket等。
gourd-quartz:quartz动态定时任务,并持久化到数据库。
gourd-activiti:工作流及请假demo。
gourd-boot-admin: springboot admin监控台,并增加邮件通知功能;
gourd-generator: mybatisPlus的代码生成工具;
gourd-rocketMq: 消息的发送和消费;
gourd-es: elasticSearch搜索引擎;
gourd-cache:缓存模块,redis、redisson分布式锁、springcache注解式缓存;项目模块:
----------------------------------------
gourd-service-hu:主项目,一个完整的springboot项目。
架构:springboot + springCloud + mybatisPlus(持久层) + mysql(数据库) +
nacos(注册中心、配置中心) + feign(远程调用)+ ribbon(负载) +sentinel(流控、熔断)
+ redis(缓存) + redisson(分布式锁) + seata(分布式事务)
gourd-service-sub: 辅助项目,简单的springboot项目,用于测试分布式服务调用和分布式事务等。#### 集成功能:
**核心功能:**
1.springSecurity+jwt-token:
用户管理、权限验证、使用jwt-token作为用户身份Id。
支持承租人模式。 登录账号密码: admin@gourd 123456
2.mysql数据库:
动态多数据源( 如果只有一个数据库,master和slave配置成一样即可);
数据库连接密码加密;
3.Cache:
redis工具类;
spring Cache; 功能测试:CloudTestController-> /test/cache
redisson分布式锁; 测试接口:CloudTestController -> /test/lock
4.seata:
分布式事务,功能测试:CloudTestController -> /test/seata-tx
5.quartz定时任务:
业务代码动态增加定时任务; 功能测试:QuartzController
持久化到数据库;
6.springCloud分布式:
注册发现中心:Nacos;
feignClient远程调用; 功能测试:CloudTestController
ribbon:负载均衡
7.Nacos:
配置中心,日志等级热更新;
功能测试:CloudTestController -> /test/nacos
8.sentinel:
接口限流、降级、系统保护、热点数据限流、权限设置等;
规则持久化到Nacos;
9.通讯:
aliyun短信通知; 功能测试:NoticeTestController-> /notice/msg
文本、附件、模板邮件通知; 功能测试:NoticeTestController
netty-websocket实时消息; 功能测试:http://localhost:8088/hu/websocket.html
10.文件:
openoffice在线预览文件;功能测试:FileConvertController
easyexcel实现Excel文件导入导出; 功能测试:EasyExcelController
fastDfs文件上传、下载; 功能测试:FileController
11.activiti:工作流,及请假流程demo
功能测试: ActivitiController
12.p6spy sql日志打印,打印sql耗时、替换参数后的sql。
13.jasypt文本加解密,可用于数据库密码、redis密码、邮箱密码等加密;
密文生成:https://blog.csdn.net/HXNLYW/article/details/98635913
14.图形验证码生成校验
功能测试地址:http://localhost:8088/hu/kaptcha.html
15.rocketMq:
消息发送和消费
16.async:
支持@Async注解异步方法;
异步线程池直接使用。
功能测试:CloudTestController->/test/async-task
17. elasticSearch:
分布式、RESTful 风格的搜索和数据分析引擎;
功能测试:UserEsController;
18. FlyingSaucer+thymeleaf实现动态模板文件转pdf打印;
功能测试:PdfController;
19.工具类:
1)地址ip获取工具(AddressUtil);
2)日期处理工具(DateUtil);
3)分布式全局唯一订单号生成、分布式全局唯一主键id生成工具(OrderNumberUtil、IdGeneratorUtil);
4)md5加密工具、AES加解密工具(Md5Util、AesHopeUtil);
5)汉字拼音生成工具(Pinyin4jUtil);
6)铭感词脱敏工具(SensitiveInfoUtil);
7)集合转换复制工具(CollectionUtil);
8)redis操作工具类、redisson锁工具类(RedisUtil、RedisLockUtil);
9)RestTemplate远程调用工具了(RestTemplateUtil);
20.其他功能:
1)统一异常处理,自定义业务异常;
2)spring-retry接口重试,自定义接口重试次数、间隔、和重试的异常;
3)AOP接口防重复提交,唯一条件:指定时间内,用户id+请求url+参数 控制唯一性;
4)接口访问日志记录,记录请求地址、参数、返回、异常及接口耗时等并持久化到数据库;默认30天过期删除 ;
5)实体类公共字段填充:is_deleted,version,created_by,created_time,updated_by,updated_time ;
6)实体类Id自动填充;
**辅助功能:**
1.swagger:
接口文档、接口调试;
本地地址:http://localhost:8088/hu/swagger-ui.html#
线上地址:http://47.103.5.190:8088/hu/swagger-ui.html#/
2.flyway:
数据库脚本自动执行,只需要将sql脚本放在 /db目录下,项目启动就会自动执行脚本。
3.generator:
mybatisPlus自动生成基础代码
4.druid监控:
本地地址:http://localhost:8088/hu/druid/login.html 账号密码:admin
线上地址:http://47.103.5.190:8088/hu/druid/login.html 账号密码:admin
5. springboot admin监控:
springboot应用监控,线程、内存、垃圾回收、配置等监控;
访问地址:http://localhost:8769
#### 作者
名字:gourd.hu
邮箱:13584278267@163.com
博客:https://blog.csdn.net/HXNLYW
微信号:13584278267 (欢迎咨询)