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オブジェクトに簡単に読み込むことができます。

bannerAds