プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

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

■application.propertiesに任意の文字を設定する

今回は「str=test;」とする ※変数には大文字が設定できないので注意
 
 

 
 


■additional-spring-configuration-metadata.jsonを作成して、警告を解除

application.propertiesに任意の文字を設定すると警告が出るので、「str is an unknown property.」を右クリック⇒クイックフィックス⇒完了を押下

 

resources配下に「META-INF/additional-spring-configuration-metadata.json」が作成される

 

プロジェクトをクリーンすると警告は解除される

 
 

 
 

 
 

 
 


■application.propertiesに設定した文字列のGetter、Setterメソッドを持つ任意のクラスを作成

package com.example;

import org.springframework.boot.context.properties.ConfigurationProperties;

import lombok.Data;

// LombokのDataアノテーションでGetter、Setterメソッドを設定
@Data
// ConfigurationPropertiesでapplication.propertiesと紐づける
@ConfigurationProperties
public class Properties {
    private String str;
}

 
 


■JavaConfigを作成

AppConfig.javaをJavaConfigとする

 
 
javaをJavaConfigの作成方法はこちら ⇒ Bean定義ファイルの作成方法(JavaConfig)
 
 

package com.example;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

// JavaConfig用のクラスとして「@Configuration」を付与
@Configuration
public class AppConfig {
    @Bean
    Properties properties() {
        return new Properties();
    }
}

 
 


■メインクラス

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Import;

@SpringBootApplication
@Import(AppConfig.class)
public class SampleApplication {
    public static void main(String[] args) {
        // DIコンテナ
        ApplicationContext context = SpringApplication.run(SampleApplication.class, args);

        // DIコンテナからPropertiesクラスのインスタンスを取得
        Properties properties = context.getBean(Properties.class);

        // Propertiesクラスのゲッターメソッドでapplication.propertiesに設定した「str」の値を取得
        var resultStr = properties.getStr();

        System.out.print(resultStr);
    }
}