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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章