ホームページ  >  記事  >  Java  >  Spring Boot では構成プロパティはどのようにバインドされますか?

Spring Boot では構成プロパティはどのようにバインドされますか?

WBOY
WBOYオリジナル
2024-04-18 09:09:02604ブラウズ

Spring Boot の構成プロパティは、アプリケーション プロパティ ファイル、環境変数、コマンド ライン パラメーターなどのプロパティ ソースから構成プロパティ クラスにバインドできます。プロパティのバインドは、@ConfigurationProperties アノテーションを通じて行われます。実際のケース: 構成属性クラスを作成し、属性ソースをバインドし、構成属性を取得します。

Spring Boot 中的配置属性是如何绑定的?

Spring Boot での構成プロパティのバインド

Spring Boot は、構成プロパティを簡単にバインドできる強力な構成プロパティ メカニズムを提供します。アプリケーションのプロパティ ファイル、環境変数、コマンド ライン引数などのさまざまなソースからアプリケーションに値を追加します。

構成属性クラスの作成

まず、構成属性のフィールドと型を宣言するために、構成属性クラスを作成する必要があります。たとえば、次のクラスは 2 つの構成プロパティを定義します。

@ConfigurationProperties("my.app")
public class AppConfig {
    private String name;
    private int port;

    // getter and setter methods
}

プロパティ ソース

Spring Boot では、構成プロパティをさまざまなプロパティ ソースからバインドできます。最も一般的なプロパティ ソースは次のとおりです。

  • アプリケーション プロパティ ファイル: src/main/resources/application.properties にあり、キーと値のペアが含まれます。
  • 環境変数: システム環境変数。MY_APP_NAME などの形式で名前が付けられます。
  • コマンド ライン パラメーター: --my.app.name=value などの形式でアプリケーションに渡します。

プロパティ バインディング

Spring Boot は、プロパティ ソースから構成プロパティ クラスに構成プロパティを自動的にバインドします。このバインディングは、@ConfigurationProperties アノテーションを通じて行われます。

実践的なケース

次は、Spring Boot アプリケーションで構成プロパティを使用する方法を示す実践的なケースです:

@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
        AppConfig config = beanFactory.getBean(AppConfig.class);

        System.out.println("Name: " + config.getName());
        System.out.println("Port: " + config.getPort());
    }
}

この例では、 AppConfig クラスを作成し、@ConfigurationProperties アノテーションを使用して構成プロパティ クラスとして宣言します。次に、beanFactory を使用して AppConfig Bean を取得し、構成されたプロパティ値を出力します。

このアプリケーションを実行し、application.properties ファイルを指定します:

my.app.name=My Application
my.app.port=8080

コンソールに出力が表示されます:

Name: My Application
Port: 8080

以上がSpring Boot では構成プロパティはどのようにバインドされますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。