開発者ドキュメント

Spring @Value – プロパティファイルからリストをインポートする

このチュートリアルでは、Spring EL `@ Value`を使ってプロパティファイルから” List “をインポートする方法を説明します。

テスト済み:

  1. Spring 4.0.6

  2. JDK 1.7

Spring @ValueとList

Springの@Valueでは、 `split()`メソッドを使って ‘List’を1行に挿入することができます。

config.properties

server.name=hydra,zeus
server.id=100,102,103

AppConfigTest.java

package com.mkyong.analyzer.test;

import java.util.List;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;

@Configuration
@PropertySource(value="classpath:config.properties")
public class AppConfigTest {

    @Value("#{'${server.name}'.split(',')}")
    private List<String> servers;

    @Value("#{'${server.id}'.split(',')}")
    private List<Integer> serverId;

   //To resolve ${} in @Value
    @Bean
    public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
        return new PropertySourcesPlaceholderConfigurer();
    }

}

出力

    System.out.println(servers.size());
    for(String temp : servers){
        System.out.println(temp);
    }

    System.out.println(serverId.size());
    for(Integer temp : serverId){
        System.out.println(temp);
    }
2
hydra
zeus

3
100
102
103
モバイルバージョンを終了