Spring Bootでapplication.ymlからプロパティを取得する方法


  1. @Valueアノテーションを使用する方法: @Valueアノテーションを使用して、application.ymlファイル内のプロパティを直接フィールドに注入することができます。以下はその方法の例です。

    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() {
           // myPropertyの値を使用する処理
       }
    }

    上記の例では、my.propertyというキーで定義されたプロパティの値がmyPropertyフィールドに注入されます。

  2. @ConfigurationPropertiesアノテーションを使用する方法: @ConfigurationPropertiesアノテーションを使用して、application.ymlファイル内のプロパティをPOJOクラスにマッピングすることができます。以下はその方法の例です。

    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    @Component
    @ConfigurationProperties(prefix = "my")
    public class MyProperties {
       private String property;
       // ...
       public String getProperty() {
           return property;
       }
       public void setProperty(String property) {
           this.property = property;
       }
    }

    上記の例では、application.ymlファイル内のmy.propertyというキーにマッピングされるpropertyフィールドを持つPOJOクラスを定義しています。

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    @Component
    public class MyComponent {
       private final MyProperties myProperties;
       @Autowired
       public MyComponent(MyProperties myProperties) {
           this.myProperties = myProperties;
       }
       public void doSomething() {
           String propertyValue = myProperties.getProperty();
           // propertyValueの値を使用する処理
       }
    }

    上記の例では、MyPropertiesクラスをMyComponentクラスに注入し、getProperty()メソッドを使用してプロパティの値を取得しています。