企业级springboot项目架构模板V5.1 sharding-jdbc版本,开箱即用(针对中小型项目架构,内置切换sharding-jdbc数据源实现分库分表配置,免去重复造轮的操作,强烈推荐)

请前往发行版下载(稳定版): https://gitee.com/schema-template/quick-template/tree/relase-5.1%EF%BC%88sharding-jdbc%EF%BC%89/

介绍

SpringBoot多模块架构,争对企业级开发设计,已集成认证功能、文档功能,开箱即用。
技术栈: springboot + redis + shiro + swagger + xxl-job + 文件存储(soo | ftp | minio)+ sentinel + sharding-jdbc
启动项目后访问 http://127.0.0.1/doc.html 进入swagger接口文档页


软件架构

如下架构图可快速了解 quick-template 的使用方式和设计结构,

企业级springboot项目架构模板V5.1 sharding-jdbc版本,开箱即用(针对中小型项目架构,内置切换sharding-jdbc数据源实现分库分表配置,免去重复造轮的操作,强烈推荐)


quick-log-serve 工程

quick-log-serve 为日志服务,包含系统日志访问接口。

该对其他子模块提供了 LogbackController 接口,通过该接口访问系统 html 和 txt 的Logback日志文件。
如:http://localhost:8082/log-server-api/logback/html/2022-03-24ccessKey=F9F09728BBC81DA9&level=info 可访问html日志信息记录

接口: /log-server-api/logback/{type}/{dateTime}ccessKey=F9F09728BBC81DA9&level=info
type参数:日志类型可选值html、txt
dataTime参数: 某一天的日志信息
accessKey参数:令牌(该接口不会参与到 quick-auth-serve 服务的认证鉴权,所以单独开发了这个接口)
level参数: 如果type参数为txt的话,该值生效。即访问的日志文件级别。

注意:
如果不要对外开发该接口,可在 application-log.yml 中关闭该接口。


quick-job 工程

quick-job 为定时任务模块。

系统定时任务模块,使用分布式xxl-job框架实现,项目启动后会自动注入job任务,需要配合手动调整xxl-job官方源码,如不想修改源码,可直接使用 https://gitee.com/schema-template/xxl-job 仓库代码代替官方xxl-job,该仓库地址源码已被修改,可直接配和 quick-job 模块使用

注意:
1.可通过 application-job.yml 中 enable 自动注册job任务功能。
2.xxl-job 任务执行的目标机器需要是公网Ip或本地局域网内(目标机器能被访问到服务器),如果你项目再本地启动,而xxl-job服务再云服务器上启动,那么job任务可以注册进去,但是xxl-job是无法调用目标机器,xxl-job会自动识别注册任务的IP地址,这点需要注意,您可以考虑本地启动xxl-job服务


quick-common 工程

quick-auth-serve 为常用的工具服务,包含提供redisClient、File操作、Word转PDF、手动Validator验证工具(系统同时还配置全局异常处理方式)等工具类。


quick-storage 工程

文件存储模块,目前提供三种存储方式oss、ftp、mino,可通过config模块配置进行切换(目前FTP实现了分片上传逻辑)。


quick-config 工程

quick-condig 系统统一配置服务。

(1)每个子模块都有自己数据源配置,实现各个子模块连接自己的数据源,参考com.quick.config.datasource 数据源配置类 和 application-db.yml 配置文件;可访问 IP:端口/druid 访问数据源监控

(2)各个server模块,需要在 quick-config 工程中下的 application-system.yml 配置 request 前缀:

(3)系统配置了 sentinel 实现接口限流配置,项目启动后会自动注册到 sentinel 服务中,(自动注册配置类 com.quick.config.sentinel.SentinelConfig),即系统扫描所有接口,注册到 sentinel 中。

注意:
如果需要关闭接口限流功能,可在 application-sentinel.yml 中关闭该功能。

(4)swagger配置,各个对外暴露的接口工程,都实现了swagger分组功能,配置类 com.quick.config.swagger.SwaggerConfig,项目启动后访问 IP:端口/doc.html

企业级springboot项目架构模板V5.1 sharding-jdbc版本,开箱即用(针对中小型项目架构,内置切换sharding-jdbc数据源实现分库分表配置,免去重复造轮的操作,强烈推荐)


quick-base-serve 工程

该工程为一个案例工程,如项目中需要开发一个订单模块,可按照该模块创建。

注意:
不同的子模块需要在config-server工程中配置各自的数据源;
不同的子模块提供controller接口需要在config-server工程中配置各自的swagger配置分组
不同的子模块可自行配置 @RequestMapping 前缀,在config-server工程中的 application-system.yml配置。


quick-web-serve 工程

该工程为启动工程,通过QuickWebApplication启动器启动项目。


control 目录

项目涉及到的其他服务,如:sentinel-dashboard-1.8.3.jar

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树使用JDBC操作数据库JDBC概述91330 人正在系统学习中

来源:Ark方舟

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月5日
下一篇 2022年9月5日

相关推荐