Spring Boot yml 公共抽取

 

背景

   项目里面的yml文件为了区别线上、测试、本地环境,分别有application-prod.yml,application-dev.yml,application-local.yml;但是每个里面有很多相同的配置,希望配置文件里面的运维相关的公共配置抽取出来,统一管理

 

实现方案

  通过在application.yml include 标签把不同的配置(数据源配置,Redis配置)引入

 

application.yml

spring:
  profiles:
    active: @profiles.active@
    include: kafka,datasource
  application:
    name: xxx

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: deleted  # 全局逻辑删除的实体字段名
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

 

application-local.yml

server:
  port: 80

datasource:
  type: com.alibaba.druid.pool.DruidDataSource
  url: xxx
  username: xxx
  password: xxx

 

application-datasource.yml

spring:
  datasource:
   # 通过${} 从yml上下文可以取到 applicaiton-local.yml 对应的变量 type: ${datasource.type} driverClassName: com.mysql.jdbc.Driver url: ${datasource.url} username: ${datasource.username} password: ${datasource.password} initial
-size: 10 # 最大连接池数量 max-active: 100 # 最小连接池数量 min-idle: 10 # 配置获取连接等待超时的时间 max-wait: 60000 # 打开PSCache,并且指定每个连接上PSCache的大小 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 min-evictable-idle-time-millis: 300000 validation-query: SELECT 1 FROM DUAL test-while-idle: true test-on-borrow: false test-on-return: false

 

pom.xml

 <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>application.yml</include>
                    <include>application-${profiles.active}.yml</include>
                    <include>config/application-*.yml</include> #需要特别注意需要额外把抽取好的公共yml include
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
 </resource>
posted @ 2022-05-27 14:36  我没K~  阅读(962)  评论(0编辑  收藏  举报