Skip to content

数据库动态切换多数据源SDK、Redis多数据源SDK、全链路日志追踪SDK、RabbitMQ多虚拟主机多集群支持SDK、日志组件SDK、埋点扩展点、实体类字段脱敏SDK、I18n多语言SDK、图形验证码SDK、开发基础框架支持、异常统一处理、返回值、跨域、API路由、监控、路由重定向组件等;

Notifications You must be signed in to change notification settings

mingyang66/spring-parent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
yaomingyang
Feb 10, 2025
55404e7 · Feb 10, 2025
Feb 12, 2022
Jun 21, 2024
Jan 6, 2025
Dec 27, 2024
Nov 15, 2024
Feb 8, 2025
Jan 9, 2025
Feb 8, 2025
Feb 8, 2025
Dec 13, 2024
Aug 23, 2024
Dec 18, 2024
Dec 17, 2024
Jan 6, 2025
Sep 19, 2024
Jan 6, 2025
Jan 6, 2025
Jun 21, 2024
Jun 21, 2024
Feb 10, 2025
Jan 9, 2025
Jan 9, 2025

Repository files navigation

基础框架SDK

master分支是基于java17及springboot 3.x.x的版本,原来基于java11及springboot2.7.x版本的代码在java11分支

  • Maven’s Bill of Material (BOM)

    <dependencyManagement>
        <dependencies>
            <dependency>
            <dependency>
                <groupId>io.github.mingyang66</groupId>
                <artifactId>emily-dependencies</artifactId>
                <version>5.0.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            </dependency>
        </dependencies>
    </dependencyManagement>
  • 基于继承关系的Maven父依赖:
    <parent>
        <groupId>io.github.mingyang66</groupId>
        <artifactId>emily-spring-boot-parent</artifactId>
        <version>5.0.2</version>
        <relativePath/>
    </parent>

架构图


三、Redis多数据源组件

  • 属性配置
# 是否开启Redis多数据源配置,默认:true
spring.emily.redis.enabled=true
# Redis监控是否开启,默认:false
spring.emily.redis.monitor-enabled=false
# Redis监控固定间隔时间,默认:30s
spring.emily.redis.monitor-fire-rate=10s
# 是否开启连接校验,默认:false
spring.emily.redis.validate-connection=false
# 是否开启共享本地物理连接,默认:true
spring.emily.redis.share-native-connection=true

spring.emily.redis.config.default.client-type=lettuce
spring.emily.redis.config.default.database=15
spring.emily.redis.config.default.password=test12345
spring.emily.redis.config.default.sentinel.master=xxx
spring.emily.redis.config.default.sentinel.nodes=x.x.x.x:26380,x.x.x.x:26381,xx.x.x.x:26382
# 读取超时时间
spring.emily.redis.config.default.timeout=3000
# 连接超时时间
spring.emily.redis.config.default.connect-timeout=PT3S
spring.emily.redis.config.default.lettuce.pool.enabled=true
spring.emily.redis.config.default.lettuce.pool.max-active=8
spring.emily.redis.config.default.lettuce.pool.max-idle=8
#
spring.emily.redis.config.default.lettuce.pool.min-idle=4
spring.emily.redis.config.default.lettuce.pool.max-wait=-1
# 每隔多少时间空闲线程驱逐器关闭多余的空闲连接,且保持最少空闲连接可用,同时min-idle要大于0
spring.emily.redis.config.default.lettuce.pool.time-between-eviction-runs=PT0.1S

spring.emily.redis.config.test.client-type=lettuce
spring.emily.redis.config.test.database=15
spring.emily.redis.config.test.password=xx
spring.emily.redis.config.test.sentinel.master=xx
spring.emily.redis.config.test.sentinel.nodes=x.x.x.x:26379,x.x.x.x:26379,x.x.x.x:26379
spring.emily.redis.config.test.timeout=300
spring.emily.redis.config.test.lettuce.pool.max-active=8
spring.emily.redis.config.test.lettuce.pool.max-idle=8
spring.emily.redis.config.test.lettuce.pool.min-idle=0
spring.emily.redis.config.test.lettuce.pool.max-wait=-1

七、API路由设置组件

#是否开钱添加前缀组件,默认:false
spring.emily.mvc.path.enabled=false
#自定义添加前缀,默认api
spring.emily.mvc.path.prefix=api
#区分大小写,默认false
spring.emily.mvc.path.case-sensitive=false
#是否缓存匹配规则,默认null等于true
spring.emily.mvc.path.cache-patterns=true
#是否去除前后空格,默认false
spring.emily.mvc.path.trim-tokens=false
#设置URL末尾是否支持斜杠,默认true,如/a/b/有效,/a/b也有效
spring.emily.mvc.path.use-trailing-slash-match=true
#忽略URL前缀控制器设置,默认空
spring.emily.mvc.path.exclude=

八、API跨域组件

#开启跨域设置,默认:false
spring.emily.mvc.cors.enable=false
#设置允许哪些源来访问,多个源用逗号分开
spring.emily.mvc.cors.allowed-origins=
#允许HTTP请求方法
spring.emily.mvc.cors.allowed-methods=GET,POST
#设置用户可以拿到的字段
spring.emily.mvc.cors.allowed-headers=
#设置浏览器是否应该发送凭据cookie
spring.emily.mvc.cors.allow-credentials=true
#设置响应HEAD,默认无任何设置,不可以使用*号
spring.emily.mvc.cors.exposed-headers=
#设置多长时间内不需要发送预检验请求,可以缓存该结果,默认1800秒
spring.emily.mvc.cors.max-age=1800

九、全局过滤器及灰度发布路由重定向组件

# 过滤器总开关,默认:true
spring.emily.filter.enabled=true
# 全局过滤器开关(解决读取请求参数后控制器拿不到参数问题),默认:true  
spring.emily.filter.global-switch=true
# 控制路由重定向开关,默认:false
spring.emily.filter.route-switch=false

十二、返回值包装组件

  • 支持所有数据类型返回值包装BaseResponse类;
  • 支持通过注解@ApiResponseWrapperIgnore忽略掉返回值包装;
  • 返回值类型为BaseResponse的忽略掉包装;
  • 支持通过属性配置spring.emily.response.exclude=xx,xx配置模式忽略返回值包装(可以配置正则表达式);
  • 返回值类型是byte[]字节码流的忽略返回值包装;

组件SDK属性配置:

# 返回值包装SDK开关,默认:true
spring.emily.response.enabled=true
# 基于适配器模式的实现方案,默认:false
spring.emily.response.enabled-adapter=false
# 基于AOP切面的实现方案,默认:true
spring.emily.response.enabled-advice=true
# 排除指定url对返回值进行包装,支持正则表达式
spring.emily.response.exclude=abc/a.html

返回值包装案例:

{
    "status": 0,
    "message": "SUCCESS",
    "data": {
        "username": "田晓霞",
        "password": "密码"
    },
    "spentTime": 3
}

consul服务查询、删除接口

  • 查询服务接口Get
http://127.0.0.1:8500/v1/agent/checks
  • 删除consul服务接口PUT方法
http://127.0.0.1:8500/v1/agent/service/deregister/instance-id(实例ID)
IDEA快捷键
  • 查询类的所有方法:

    F+command+F12
    

About

数据库动态切换多数据源SDK、Redis多数据源SDK、全链路日志追踪SDK、RabbitMQ多虚拟主机多集群支持SDK、日志组件SDK、埋点扩展点、实体类字段脱敏SDK、I18n多语言SDK、图形验证码SDK、开发基础框架支持、异常统一处理、返回值、跨域、API路由、监控、路由重定向组件等;

Resources

Stars

Watchers

Forks

Packages

No packages published