Springのapplication.propertiesから値を取得する方法


ファイルに保存することが一般的です。このファイルには、データベースの接続情報や外部サービスのAPIキーなど、アプリケーションで使用するさまざまな設定値を記述します。以下では、Springのapplication.propertiesから値を取得するためのいくつかの方法と、それぞれの方法のコード例を紹介します。

  1. @Valueアノテーションを使用する方法: @Valueアノテーションを使用して、application.propertiesから値を直接注入することができます。

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    @Component
    public class MyComponent {
       @Value("${my.property}")
       private String myProperty;
       // ...
       public void doSomething() {
           System.out.println("my.propertyの値: " + myProperty);
       }
    }

    上記の例では、my.propertyというキーに対応する値がapplication.propertiesから取得され、myPropertyフィールドに注入されます。

  2. Environmentクラスを使用する方法: Environmentクラスを使用して、application.propertiesから値を取得することもできます。

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.core.env.Environment;
    import org.springframework.stereotype.Component;
    @Component
    public class MyComponent {
       @Autowired
       private Environment environment;
       public void doSomething() {
           String myProperty = environment.getProperty("my.property");
           System.out.println("my.propertyの値: " + myProperty);
       }
    }

    上記の例では、Environmentクラスを使用してmy.propertyキーに対応する値を取得し、その値を利用しています。

  3. @ConfigurationPropertiesアノテーションを使用する方法: @ConfigurationPropertiesアノテーションを使用して、application.propertiesに定義された複数の設定値を1つのクラスにバインドすることができます。

    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    @Component
    @ConfigurationProperties(prefix = "my")
    public class MyProperties {
       private String property;
       // getterとsetter
       // ...
       public void doSomething() {
           System.out.println("my.propertyの値: " + property);
       }
    }

    上記の例では、prefix属性を使用してmyというプレフィックスを指定し、my.propertyキーに対応する値をpropertyフィールドにバインドしています。その後、MyPropertiesクラスを使用して値を利用できます。

これらはいくつかの一般的な方法ですが、Springでは他にもさまざまな方法があります。アプリケーションの要件や設定値の種類に応じて、最適な方法を選択することが重要です。