Spring Bootではどのようにyml設定ファイルを読み込みますか
Spring Bootでは、@ConfigurationPropertiesアノテーションを使ってyml設定ファイルを読み込むことができます。
まず、Spring BootアプリケーションのConfigurationクラスに@ConfigurationPropertiesアノテーションをつけて、yml設定ファイルのプレフィックスを指定する必要があります。例えば、application.ymlファイルの設定を読み込む場合は、Configurationクラスに@ConfigurationProperties(prefix = “設定プレフィックス”)アノテーションをつけます。
次に、設定クラスにyml 設定ファイルの設定項目に対応する属性を定義し、その属性にgetter、setter メソッドを追加します。
設定ファイルに定義された設定は、設定クラスのインスタンスを他のクラスに注入することで利用できます。
下記にサンプルを記載します。
application.ymlでexampleという設定項目を定義しました。
example:
name: "John"
age: 25
ExampleConfig 設定クラスを作成して、yml ファイルから設定項目を読み込みます。
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "example")
public class ExampleConfig {
private String name;
private int age;
// getter和setter方法省略
// 其他类中使用ExampleConfig的实例
}
現在は、ExampleConfig のインスタンスを他のクラスで注入して、中のプロパティを使用できる
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class ExampleService {
private ExampleConfig exampleConfig;
@Autowired
public ExampleService(ExampleConfig exampleConfig) {
this.exampleConfig = exampleConfig;
}
public void printExample() {
System.out.println("Name: " + exampleConfig.getName());
System.out.println("Age: " + exampleConfig.getAge());
}
}
上記の例で、ExampleService クラスはコンストラクタに ExampleConfig のインスタンスを注入し、そのプロパティを使用して設定項目の値を出力しています。
@ConfigurationPropertiesアノテーションを使用する際は、yml設定ファイルがSpring Bootアプリケーションに適切にロードされていることを確認する必要があります。application.propertiesファイルにspring.profiles.active=devを追加して使用される設定ファイルを指定できます。