首页 > 其他分享 >企业级springboot项目架构模板V1.0,开箱即用

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

时间:2023-06-01 19:06:27浏览次数:53  
标签:springboot 工程 serve 企业级 V1.0 模块 quick server config



项目地址:https://gitee.com/liujinxin_ark/quick-template/releases

项目问题可在评论中留言,项目持续更新中…


quick-template项目

  • 介绍
  • 软件架构
  • quick-auth-serve 工程
  • quick-log-serve 工程
  • quick-common 工程
  • quick-config 工程
  • quick-base-serve 工程
  • quick-web-serve 工程
  • control 目录


介绍

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




软件架构

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

企业级springboot项目架构模板V1.0,开箱即用_系统架构




quick-auth-serve 工程

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

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

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

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

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




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 中关闭该接口。




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

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




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





标签:springboot,工程,serve,企业级,V1.0,模块,quick,server,config
From: https://blog.51cto.com/u_14671216/6397677

相关文章

  • springboot多模块打包配置问题
    工程案例结构: -baidu//聚合过程   -baidu_web     //子模块web工程   -baidu_service//子模块   -baidu_config//子模块配置工程  注意事项(配置步骤):1.baidu聚......
  • SpringBoot配置Bean是否生效
    @Configuration@ConditionalOnProperty(prefix="xxl.job",name="enable",havingValue="true",matchIfMissing=true)publicclassXxlJobConfig{//...}上述可直接读取配置文件中的,xxl.job.enable=true@ConditionalOnProperty(prefi......
  • Springboot项目中如何使用线程池
    目录1.基于 ExecutorService自定义线程池(Java5中引入的)2.基于 ThreadPoolTaskExecutor线程池的使用(Spring提供,以及监听线程池)3.自定义 ThreadPoolTaskExecutor线程池用于大数据量的导出报表、远程请求处理数据量同步等等日常项目中可以定义多个线程池,如:报表导出使用的线......
  • Springboot整合EasyPOI操作Excel文件
    配合官网阅读本文源码POI官网文档效果图:本文只做一个案列的操作:pom依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--EasyPoi导入导......
  • springboot整合shiro实现认证授权源码
    shiro-admin介绍springboot整合shiro实现前后端分离架构(swagger文档协调前端开发)源码地址:https://gitee.com/liujinxin_ark/shiro-admin软件架构架构说明springboot+shiro+mysql+swagger使用说明运行项目后访问http://localhost:8080/doc.html即可进入swagger接口文档界......
  • springBoot+下载
    在springBoot我们上次文件和其他相比,就简单不少,现在我们在SpringBoot的基本框架基础上添加上传图片。一:没有新的jar包,但是在原有的jar包中必须需要有如下jar包。<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId......
  • SpringBoot中定时任务多线程任务
    SpringBoot使用Spring自带的Schedule来实现定时任务变得非常简单和方便。在这里个大家分享下。开启缓存注解@SpringBootApplication@EnableScheduling//开启定时任务publicclassApplication{publicstaticvoidmain(String[]args){SpringApplicat......
  • SpringBoot项目中实现读写分离
    背景介绍面对日益增加的系统访问量,数据库的吞吐量面临着巨大瓶颈。对于同一时刻有大量并发读操作和较少写操作类型的应用系统来说,将数据库拆分为主库和从库,主库负责处理事务性的增删改操作,从库负责处理查询操作,能够有效的避免由数据更新导致的行锁,使得整个系统的查询性能得到极......
  • 前后端分离的架构,前端使用Vue2.6.10,后端使用SpringBoot2.0.0的ERP实现
    技术架构技术框架:SpringBoot2.0.0+Mybatis1.3.2+SLF4J1.7+Vue2.6.10+Ant-Design-Vue1.5.2+Mysql5.7+Redis运行环境:jdk8+IntelliJIDEA+maven+宝塔面板本地部署:1.小皮面板创建一个数据库,导入jsh_erp.sql文件至数据库中,该文件在后端程序的docs文件夹下。2.使用......
  • Springboot实现ENC加密jasypt-spring-boot-starter
    依赖:<!--配置文件加密--><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.4</version>&l......