Spring bootカスタム構成の使用

2157 ワード

スプリングbootの自動構成では、プロファイルを書かなくてもデフォルト構成で実行できることが多いです.しかし、これらの構成は私たちのニーズを満たすことができず、独自のカスタマイズが必要になる場合があります.例えば、データソースアドレス、ミドルウェアアドレスなど、デフォルトはすべてネイティブlocalhostで、もちろん私たちが実際に使用する過程で普通は同じ機械で実際には、Spring Bootが自動的に構成したBeanは300以上の微調整のための属性を提供していません.設定を調整する場合は、環境変数、Javaシステム属性、JNDI(Java Naming and Directory Interface)、コマンドラインパラメータ、または属性ファイルで指定すればよい.簡単な例を挙げると、コマンドラインでプログラムを実行するとSpring bootに起動するBannerがあります.このBannerを無効にしたい場合はspring.main.show-bannerプロパティをfalseに設定できます.以下にいくつかの実装方法があります.
  • アプリケーションを実行するコマンドラインパラメータで、$ java -jar readinglist-0.0.1-SNAPSHOT.jar --spring.main.show-banner=false
  • を指定します.
  • アプリケーション.propertiesというファイルを作成します.spring.main.show-banner=false
  • です.
  • アプリケーション.ymlという名前の
    spring:
    main:
    show-banner: false
  • も作成できます.
  • プロパティを環境変数に設定します.たとえば、bashまたはzshを使用している場合は、exportコマンド:$ export spring_main_show_banner=false ps:点や横棒ではなく下線を使用します.これは環境変数名の要件です.

  • 実際、Spring Bootアプリケーションにはさまざまな設定方法があります.Spring Bootは、以下のような複数の属性ソースから属性を得ることができます.(1)コマンドラインパラメータ(2)java:comp/envのJNDIプロパティ(3)JVMシステムプロパティ(4)オペレーティングシステム環境変数(5)ランダムに生成されたrandom.*接頭辞付きプロパティ(他のプロパティを設定する場合、${random.long}など)を参照できます(6)アプリケーション以外のapplication.propertiesまたはapplication.ymlファイル(7)アプリケーションにパッケージ化されたアプリケーション.propertiesまたはapplication.ymlファイル(8)@PropertySourceでマークアップされた属性ソース(9)のデフォルト属性このリストは、優先度順にソートされます.つまり、高優先度属性ソースで設定された属性は、低優先度の同じ属性を上書きします.たとえば、コマンドラインパラメータは、他のプロパティソースのプロパティを上書きします.
    アプリケーション.propertiesおよびアプリケーション.ymlファイルは、以下の4つの場所に配置できます.(1)外付けは,アプリケーション実行ディレクトリに対する/configサブディレクトリにある.(2)外付け、アプリケーションが実行するディレクトリにあります.(3)内蔵、configパッケージ内.(4)Classpathルートに内蔵.同様に、このリストは優先順位でソートされます.つまり、/configサブディレクトリのアプリケーション.propertiesは、アプリケーションClasspathのアプリケーション.propertiesの同じプロパティを上書きします.また、アプリケーション.propertiesとアプリケーション.ymlが同じ優先順位で同時に存在する場合、アプリケーション.ymlのプロパティはアプリケーション.propertiesのプロパティを上書きします.
    一般開発では,開発者のプロファイル構成のパラメータと統合環境が異なる.一般的な方法は次のとおりです.
  • jekinsパッケージの場合、異なる環境に基づいて外部プロファイルを引き出し、jarの
  • にプロファイルを一緒にパッケージします.
  • プロジェクトが起動すると、外部のプロファイル
  • を直接使用します.
  • Spring bootではProfileで構成することができ、複数の環境のプロファイル
  • を用意することができる.
  • Spring Cloud Configのリモート構成センターと同様に、動的取得
  • を行う.
    参考:『Spring boot実戦』