なみひらブログ

学んだことを日々記録する。~ since 2012/06/24 ~

Springでのプロパティ変数のデフォルト指定

一般的にSpringでのプロパティ変数の指定は以下のように指定します。

sample.properties

# URL
url=https://www.xxx.yyy.zzz.com/

sample.javaでの指定の例

package com.zzz.yyy.xxx;

/**
 * サンプルクラス
 * 
 * @author kohsuke NAMIHIRA
 * 
 */
public class Sample {

  @Value("${url}")
    private String url;

    public Stirng getUrl() {
	return url;
    }

    public void setUrl(String url) {
	this.url = url;
    }

applicationContext.xmlでの指定の例

    <bean id="sample" class="com.zzz.yyy.xxx.Sample">
        <property name="url" value="${url}"/>
    </bean>


Spring v3.0から下記のようにデフォルトを同時に記載できるようになりました

プロパティが指定されていない場合、記載されているデフォルト値が採用されます。
【形式】${my.property:myDefaultValue}

sample.javaでの指定の例

package com.zzz.yyy.xxx;

/**
 * サンプルクラス
 * 
 * @author kohsuke NAMIHIRA
 * 
 */
public class Sample {

  @Value("${url:http://example.com}")
    private String url;

    public Stirng getUrl() {
	return url;
    }

    public void setUrl(String url) {
	this.url = url;
    }

applicationContext.xmlでの指定の例

    <bean id="sample" class="com.zzz.yyy.xxx.Sample">
        <property name="url" value="${url:http://example.com}")/>
    </bean>

参考

[#SPR-4785] Add support for default values in property placeholder syntax - Spring Projects Issue Tracker