SpringBootでymlファイルを読み込む方法は?
Spring Bootでは、@ConfigurationPropertiesアノテーションを使用して、YAMLファイルの設定情報を読み取ることができます。
最初に、Yaml の依存関係をプロジェクトに追加します。pom.xml ファイルに以下の依存関係を追加します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.29</version>
</dependency>
次に、設定クラスを作成し、そのクラスにの設定を行うためのアノテーション @ConfigurationProperties を使用します。
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "myconfig")
public class MyConfig {
private String name;
private String url;
// 省略getter和setter方法
}
上記の例では、@ConfigurationPropertiesアノテーションのprefix属性にて、設定ファイル中のプロパティのプレフィックスを”myconfig”として指定しており、”myconfig”で始まるプロパティを読み込むことを意味します。
設定情報をapplication.yml または application.properties ファイルに追加してください。
myconfig:
name: "John"
url: "http://example.com"
現在、@Autowired アノテーションを使用する任意のクラスで、MyConfig オブジェクトを注入して、そのプロパティにアクセスできるようになりました。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApp {
@Autowired
private MyConfig myConfig;
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
public void run(String... args) {
System.out.println("Name: " + myConfig.getName());
System.out.println("URL: " + myConfig.getUrl());
}
}
以上はSpring BootでYAMLファイルを読み込む方法です。@ConfigurationPropertiesアノテーションを使用することで、YAMLファイル内の設定情報をJavaオブジェクトに簡単に読み込むことができます。