基礎架構模組中有一些通用固定的基礎配置。舉例而言,包括但不限於日誌配置、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會自動去找applicaiton-basic.yml和application-dev.yml檔。
所以我們最終的設定檔是由applicaiton.yml applicaiton-basic.yml applicaiton-dev.yml疊加的設定。
我們可以建立一個新的logback-spring.xml檔案來設定多環境的日誌。假設我們想要根據環境配置不同的日誌路徑。在 application-dev.yml 等檔案中,可以設定 logging.file.path。
然後在logback-spring.xml檔案中使用springProperty標籤讀取多環境yml中配置的路徑。
此時日誌的路徑就會分別讀取不同環境配置的路徑了。
以上是SpringBoot專案多層級多環境yml設計的方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!