Rumah >Java >javaTutorial >Apakah kaedah reka bentuk yml berbilang peringkat dan berbilang persekitaran dalam projek SpringBoot?

Apakah kaedah reka bentuk yml berbilang peringkat dan berbilang persekitaran dalam projek SpringBoot?

PHPz
PHPzke hadapan
2023-05-30 23:36:491590semak imbas

Senario keperluan

Terdapat beberapa konfigurasi asas tetap biasa dalam modul infrastruktur. Contohnya, termasuk tetapi tidak terhad kepada konfigurasi log, konfigurasi teras Spring dan konfigurasi biasa berkaitan MyBatis Plus. Konfigurasi ini selalunya tidak berkaitan dengan persekitaran Bagaimana ia boleh digunakan semula?

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

Terdapat juga beberapa konfigurasi bebas persekitaran dalam modul infrastruktur. Contohnya, Mysql, Redis atau MQ. Bagaimana untuk membezakan antara persekitaran?

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

Kami biasanya mengkonfigurasi konfigurasi berkaitan log dalam fail logback.xml. Bagaimana untuk melaksanakan laluan log yang berbeza dalam persekitaran yang berbeza?

Kesan yang diingini

  • Gunakan semula konfigurasi tetap dalam modul infrastruktur.

  • Bezakan konfigurasi berbilang persekitaran.

  • log log balik memperkenalkan konfigurasi berbilang persekitaran.

Pelaksanaan

Kami boleh mentakrifkan fail application.yml untuk modul Admin. Konfigurasi khusus modul diterangkan dalam fail. Contohnya, port, laluan akses, dsb.

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

Buat

applicaiton-basic.yml baharu dalam modul infrastruktur dan konfigurasikan beberapa konfigurasi penggunaan semula tetap asas yang bebas daripada persekitaran.

application-dev.yml, konfigurasikan beberapa konfigurasi berkaitan persekitaran, seperti konfigurasi pangkalan data.

Kemudian nyatakan fail asas dan dev dalam konfigurasi spring.profiles.active.

Apakah kaedah reka bentuk yml berbilang peringkat dan berbilang persekitaran dalam projek SpringBoot?

Pada masa ini springboot secara automatik akan mencari fail applicaiton-basic.yml dan application-dev.yml.
Jadi fail konfigurasi terakhir kami ialah konfigurasi digantikan oleh applicaiton.yml+applicaiton-basic.yml+applicaiton-dev.yml.

Kami boleh mencipta fail logback-spring.xml baharu untuk mengkonfigurasi pengelogan berbilang persekitaran. Katakan kita ingin mengkonfigurasi laluan log yang berbeza bergantung pada persekitaran. Dalam fail seperti application-dev.yml, logging.file.path boleh dikonfigurasikan.

Apakah kaedah reka bentuk yml berbilang peringkat dan berbilang persekitaran dalam projek SpringBoot?

Kemudian gunakan teg springProperty dalam fail logback-spring.xml untuk membaca laluan yang dikonfigurasikan dalam yml berbilang persekitaran.

Apakah kaedah reka bentuk yml berbilang peringkat dan berbilang persekitaran dalam projek SpringBoot?

Pada masa ini, laluan log akan membaca laluan konfigurasi persekitaran yang berbeza masing-masing.

Atas ialah kandungan terperinci Apakah kaedah reka bentuk yml berbilang peringkat dan berbilang persekitaran dalam projek SpringBoot?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam