Heim  >  Artikel  >  Java  >  Was ist die Methode des mehrstufigen und umgebungsübergreifenden YML-Designs im SpringBoot-Projekt?

Was ist die Methode des mehrstufigen und umgebungsübergreifenden YML-Designs im SpringBoot-Projekt?

PHPz
PHPznach vorne
2023-05-30 23:36:491532Durchsuche

Anforderungsszenario

Im Infrastrukturmodul gibt es einige gängige feste Grundkonfigurationen. Zum Beispiel einschließlich, aber nicht beschränkt auf, Protokollkonfiguration, Spring-Core-Konfiguration und MyBatis Plus-bezogene allgemeine Konfiguration. Diese Konfigurationen sind oft unabhängig von der Umgebung. Wie können sie wiederverwendet werden?

# 日志配置
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

Es gibt auch einige umgebungsunabhängige Konfigurationen im Infrastrukturmodul. Zum Beispiel Mysql, Redis oder MQ. Wie kann man zwischen Umgebungen unterscheiden?

# 数据源配置
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

Wir konfigurieren im Allgemeinen protokollbezogene Konfigurationen in der Datei logback.xml. Wie implementiert man unterschiedliche Protokollpfade in verschiedenen Umgebungen?

Der gewünschte Effekt

  • Die feste Konfiguration im Infrastrukturmodul wiederverwenden.

  • Unterscheiden Sie die Konfiguration mehrerer Umgebungen.

  • Logback-Protokoll führt die Konfiguration mehrerer Umgebungen ein.

Implementierung

Wir können eine application.yml-Datei für das Admin-Modul definieren. Die modulspezifische Konfiguration ist in der Datei beschrieben. Zum Beispiel Port, Zugriffspfad usw.

# 开发环境配置
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

Erstellen Sie eine neue

aplicaiton-basic.yml im Infrastrukturmodul und konfigurieren Sie einige grundlegende feste Wiederverwendungskonfigurationen, die unabhängig von der Umgebung sind.

application-dev.yml, konfigurieren Sie einige umgebungsbezogene Konfigurationen, z. B. die Datenbankkonfiguration.

Geben Sie dann die Basis- und Entwicklungsdateien in der spring.profiles.active-Konfiguration an.

Was ist die Methode des mehrstufigen und umgebungsübergreifenden YML-Designs im SpringBoot-Projekt?

Zu diesem Zeitpunkt findet Springboot automatisch applicaiton-basic.yml und application-dev.yml Datei.
Unsere endgültige Konfigurationsdatei wird also von applicaiton.yml+applicaiton-basic.yml+applicaiton-dev.yml#🎜🎜 erstellt #Overlay-Konfiguration.

Wir können eine neue logback-spring.xml-Datei erstellen, um Protokolle für mehrere Umgebungen zu konfigurieren. Angenommen, wir möchten je nach Umgebung unterschiedliche Protokollpfade konfigurieren. In Dateien wie application-dev.yml können Sie logging.file.path konfigurieren.

Was ist die Methode des mehrstufigen und umgebungsübergreifenden YML-Designs im SpringBoot-Projekt?

Verwenden Sie dann das Tag

springProperty in der Datei logback-spring.xml, um den in der Multi-Datei konfigurierten Pfad zu lesen. Umgebung yml.

Was ist die Methode des mehrstufigen und umgebungsübergreifenden YML-Designs im SpringBoot-Projekt?

Zu diesem Zeitpunkt liest der Pfad des Protokolls jeweils die Pfade verschiedener Umgebungskonfigurationen.

Das obige ist der detaillierte Inhalt vonWas ist die Methode des mehrstufigen und umgebungsübergreifenden YML-Designs im SpringBoot-Projekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen