ホームページ  >  記事  >  Java  >  SpringBootプロジェクトにおけるマルチレベル・マルチ環境yml設計の方法とは何ですか?

SpringBootプロジェクトにおけるマルチレベル・マルチ環境yml設計の方法とは何ですか?

PHPz
PHPz転載
2023-05-30 23:36:491532ブラウズ

要件シナリオ

インフラストラクチャ モジュールには、共通の固定された基本構成がいくつかあります。たとえば、ログ構成、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.yml および application-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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。