Heim > Java > javaLernprogramm > 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
Freigeben: 2023-05-30 23:36:49
nach vorne
1589 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage