自己搭的springBoot多模块项目

项目下载地址:

https://gitee.com/smallGourd/gourd-hu

项目结构截图:

自己搭的springBoot多模块项目_第1张图片

#### 项目介绍

本项目主要以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

邮箱:[email protected]

博客:https://blog.csdn.net/HXNLYW

微信号:13584278267 (欢迎咨询) 

你可能感兴趣的:(自己搭的springBoot多模块项目)