首頁  >  文章  >  Java  >  SpringBoot專案多層級多環境yml設計的方法是什麼

SpringBoot專案多層級多環境yml設計的方法是什麼

PHPz
PHPz轉載
2023-05-30 23:36:491567瀏覽

需求場景

基礎架構模組中有一些通用固定的基礎配置。舉例而言,包括但不限於日誌配置、Spring核心配置和MyBatis Plus的相關通用配置。這些配置往往與環境無關,如何重複使用?

# 日志配置
logging:
  level:
    # 记得配置到包名
    com.agileboot: debug
    org.springframework: info
  pattern:
    console: "%date %thread %green(%level) [%cyan(%logger{10}):%magenta(%line)] %red(%method) | %msg%n"
# Spring配置
spring:
  # 文件上传
  servlet:
     multipart:
       # 单个文件大小
       max-file-size:  10MB
       # 设置总上传的文件大小
       max-request-size:  20MB
  mvc:
    pathmatch:
      matching-strategy: ANT_PATH_MATCHER
  jackson:
    deserialization:
      fail-on-unknown-properties: false
    serialization:
      write-dates-as-timestamps: false
    date-format: yyyy-MM-dd HH:mm:ss

基礎架構模組中還有一些獨立於環境的設定。例如Mysql和Redis或MQ之類的。如何區分環境?

# 数据源配置
spring:
    # redis 配置
    redis:
        # 地址
        host: localhost
        # 端口,默认为6379
        port: 36379
        # 数据库索引
        database: 0
        # 密码
        password: 12345
        # 连接超时时间
        timeout: 10s
        lettuce:
            pool:
                # 连接池中的最小空闲连接
                min-idle: 0
                # 连接池中的最大空闲连接
                max-idle: 8
                # 连接池的最大数据库连接数
                max-active: 8
                # #连接池最大阻塞等待时间(使用负值表示没有限制)
                max-wait: -1ms

日誌相關的設定我們一般都配在logback.xml檔中。如何實現不同環境日誌路徑不一樣?

想要達到的效果

  • 重複使用基礎架構模組中的固定配置。

  • 區分多環境的配置。

  • logback日誌引入多環境配置。

實作

我們可以為Admin模組定義一個application.yml檔案。文件中描述該模組特定的配置。例如端口,訪問路徑之類的。

# 开发环境配置
server:
  # 服务器的HTTP端口,默认为8080
  port: 8080
  servlet:
    # 应用的访问路径
    context-path: /
  tomcat:
    # tomcat的URI编码
    uri-encoding: UTF-8
    # 连接数满后的排队数,默认为100
    accept-count: 1000
    threads:
      # tomcat最大线程数,默认为200
      max: 800
      # Tomcat启动初始化的线程数,默认值10
      min-spare: 100
# Spring配置 如果需要无Mysql  无Redis直接启动的话  dev改为test
# 生产环境把dev改为prod
spring:
  profiles:
    active: basic,dev

在基礎設施模組中新建

applicaiton-basic.yml,配置一些與環境無關的基礎固定復用配置。

application-dev.yml,配置一些和環境相關的配置,例如資料庫的配置。

然後在spring.profiles.active配置中指定basic和dev檔案。

SpringBoot專案多層級多環境yml設計的方法是什麼

此時springboot會自動去找applicaiton-basic.ymlapplication-dev.yml檔。
所以我們最終的設定檔是由applicaiton.yml applicaiton-basic.yml applicaiton-dev.yml疊加的設定。

我們可以建立一個新的logback-spring.xml檔案來設定多環境的日誌。假設我們想要根據環境配置不同的日誌路徑。在 application-dev.yml 等檔案中,可以設定 logging.file.path。

SpringBoot專案多層級多環境yml設計的方法是什麼

然後在logback-spring.xml檔案中使用springProperty標籤讀取多環境yml中配置的路徑。

SpringBoot專案多層級多環境yml設計的方法是什麼

此時日誌的路徑就會分別讀取不同環境配置的路徑了。

以上是SpringBoot專案多層級多環境yml設計的方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除