企业级springboot项目架构模板V2.0,开箱即用

2023-11-13

此次 2.0 更新点:
1.优化 Controller 接口入参,post 和 put 接口使用 json 格式入参;
2.日志服务 quick-log-serve 增加查询操作日志列表接口。
3.quick-log-serve 服务会记录需要鉴权的接口请求和响应信息到数据库表中(其他接口不会进行记录日志),该功能可在 application-log.yml 中关闭。
4.增加接口全局异常处理配置(com.quick.config.interceptor.handler.GlobalExceptionHandler);
5.增加 Validator 验证接口入参响应处理(com.quick.config.interceptor.handler.ValidationExceptionHandler);
6.调整 Maven 子模块之间的依赖关系;
7.在 com.quick.base.controller.TestController 中加入Validator、异常处理、入参日志记录等案例接口;
8.application-shiro.yml 配置文件中加入 excludeAuthPathList 属性 ,用于过滤指定接口不进行认证和鉴权操作。
9.优化代码逻辑。
10.springboot版本使用2.6.6

下一版本更新点:
1.加入文件服务功能支持OSS、本地存储,并且会尝试文件存储gitee仓库的方式访问等(该服务支持以SDK的方式引入)
2.下一版本将完全适应用企业级项目架构,同时会发布出项目快速入手的操作文档。


介绍

SpringBoot多模块架构,争对企业级开发设计,已集成认证功能、文档功能,开箱即用,并且不同子模块可以配置不同得数据源连接不同数据库,只需要在application-db中添加新的数据库即可(同时登录查看druid监控)。
技术栈: springboot + redis + shiro + swagger
git地址: https://gitee.com/liujinxin_ark/quick-template/tree/relase-2.0



软件架构

SpringBoot多模块 + shiro实现权限认证 + redis实现单点登录控制(可控制账户同时在线人数)+ Swagger文档
在这里插入图片描述



quick-auth-serve 工程

quick-auth-serve 为认证服务,包含系统认证、鉴权,以及系统得用户、角色、权限管理。

shiro相关信息配置可通过quick-config模块下得application-shiro.yml配置,如:令牌前缀、同一个帐号最大会话数、认证授权信息缓存等配置。

该对其他子模块提供了 ShiroUtil 类,通过该类获取当前登录用户信息。

注意:
如果需要关闭项目的认证鉴权功能,在 quick-config 工程下的 application-shiro.yml 关闭认证鉴权功能:

在这里插入图片描述



quick-log-serve 工程

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

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

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

注意:
如果不要对外开发该接口,可在 application-log.yml 中禁用该接口。
加入了日志到数据库表中功能,记录请求和响应的信息,log服务只会记录需要鉴权的接口到表中,可在application-log.yml 中该功能。



quick-common 工程

quick-auth-serve 为常用的工具服务,包含提供redisClient、File操作、Word转PDF等工具类。



quick-config 工程

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

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

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

# 设置子模块请求前缀
request:
  prefix:
    auth_server: /auth-server-api
    log_server: /log-server-api
    base_server: /base-server-api

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

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

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



quick-base-serve 工程

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

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



quick-web-serve 工程

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



control 目录

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





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

企业级springboot项目架构模板V2.0,开箱即用 的相关文章

随机推荐

  • web端上传图片时 图片被旋转问题

    有些时候在web端上传图片会遇到这种情况 正向的图片 上传预览时就被旋转了 发生这种情况是因为 照片中包含很多属性来记录拍摄信息 想要读取这些属性 需要引入EXIF 可在npm上搜索exif js下载 EXIF中 包含一个Orientati
  • Qt内存管理及泄露后定位到内存泄漏位置的方法

    Qt内存管理机制 Qt使用对象父子关系进行内存管理 在创建类的对象时 为对象指定父对象指针 当父对象在某一时刻被销毁释放时 父对象会先遍历其所有的子对象 并逐个将子对象销毁释放 Qt内存管理代码示例 QLabel label new QLa
  • Linux 查找文件(find命令/locate命令)

    目录 一 find 我的东西在哪 二 更快速地定位文件 locate命令 一 find 我的东西在哪 随着文件增多 我们有时候记住某个文件放在哪个文件夹下了 此时搜索工具显得非常有用了 而find就是这样一个命令 可以帮助我们在指定范围内查
  • 多对一的4种查询方式

    多对一的概念在数据库中是十分常见的 下面将以多个学生对应一个老师的例子介绍4种多对一的查询方式 一 建立数据库 首先建立2种表 一种是teacher表 其中包含的字段有id 主键 name 一种是student表 其中包含的字段有id 主键
  • rsa加密

    public static class RSAHelper private static string privateKey private static string publicKey public static string GetP
  • LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)

    在前面两篇博文中已经粗略介绍了增强语言模型和Tool Learning 本篇文章看四篇代表性的自动化框架 HuggingGPT AutoGPT WebGPT WebCPM Augmented Language Models 增强语言模型 T
  • log4j Layout简介说明

    转自 log4j Layout简介说明 下文笔者讲述log4j的简介说明 如下所示 log4j Layout的功能 log4j Layout主要用于日志数据格式化 它有以下三种形式 HTMLLayout 将日志格式化为HTML表格形式 ht
  • 记录uni-app开发原生android插件,调用不了,没有返回值的问题。返回值为{}的问题。返回值为空的问题

    1 引入了原生插件但是调用不了没有返回值 这种情况大多数是开发原生插件的时候引入了aar库 但是打包的时候没有引入 把需要引入的库放在生成的文件目录下就可以比如 开发了一个叫t1 module 的插件 引入了一个printer lib 3
  • vivado时序分析 实例

    vivado时序分析实例 建立余量 保持余量 实例分析 建立余量 保持余量 实例分析 环境 Vivado 2019 2 芯片型号 xc7z020clg484 2 举例子说明怎么使用Reporte Timing Summary 建立源工程 m
  • locust 性能测试工具(V2.8.6)

    locust 性能测试工具 特点 安装 验证 Demo 编写 locustfile 配置 分布式生成负载 在调试器中运行测试 在 Docker 中运行 使用 Terraform AWS 运行分布式负载测试 不使用 web UI 运行 自定义
  • c语言程序延时参数500,C语言精确延时设计

    我现在就用两种方法来实现 一种是while 语句 另一种是for 语句 这两种语句均可产生汇编语句中的DJNZ语句 以12MHZ晶振为例 说明 在编写C程序时 变量尽量使用unsigned char 如满足不了才使用unsigned int
  • Spark学习笔记:OutOfMemoryError-Direct buffer memory (OOM)

    之前也遇到过几次关于OOM 堆外内存溢出 的问题 但都只是大体上看了看 没有细致的总结 目前了解的还不是特别清楚 只好总结一下我觉得可行的处理方案 另外贴一些原理 首先是当时的一些处理方案 第一次OOM 第一次遇到这个问题时 上网查 发现很
  • 磁盘格式化了怎么恢复里面文件

    磁盘格式化了怎么恢复里面文件 磁盘格式化了数据能恢复吗 电脑磁盘是我们生活中经常打交道的一种存储介质 我们的电脑每天在工作和学习中都要读写大量的数据 因此我们经常要清理电脑磁盘保证电脑的运行速度和内存充足 那么如果电脑磁盘被格式化了该怎么恢
  • yocto编译linux社区5.10版本的坎坷

    作为菜鲲的我 基于meta intel的bsp进行修改 精简后的linux intel 5 10 bb内容如下 require recipes kernel linux linux yocto inc FILESEXTRAPATHS pre
  • add_subdirectory(子文件夹名)用法

    add subdirectory 子文件夹名 表示对子文件夹项目进行cmake编译
  • redis命令之哈希表类型hdel命令用法详情

    哈希表 HDEL命令 命令 hdel key field field field 同时删除N个field 对于不存在的field会被忽略 并返回被删除的field的个数 当在该key下的最后一个field也被删除掉的话 再通过hget ke
  • 设计模式(2)之单例模式

    外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img AHenjiIs 1610326440502 https img shields io badge link 996 icu red svg 单例模式 顾名思义就是
  • 数据库表结构设计

    数据库表结构设计 一 数据库 二 数据库类型 三 设计步骤 四 表设计 本来最近不想写东西的 奈何平台给推了个流量券 一 数据库 简而言之就是 存储数据的一个容器 常见的数据库软件有MySQL Oracle SQL Server Postg
  • python的下载和安装步骤,python下载安装教程3.10.0

    大家好 给大家分享一下python下载安装教程3 10 0 很多人还不知道这一点 下面详细解释一下 现在让我们来看看 第一步 下载Python安装包 在Python的官网 www python org 中找到最新版本的Python安装包 点
  • 企业级springboot项目架构模板V2.0,开箱即用

    此次 2 0 更新点 1 优化 Controller 接口入参 post 和 put 接口使用 json 格式入参 2 日志服务 quick log serve 增加查询操作日志列表接口 3 quick log serve 服务会记录需要鉴