Spring property-placeholderでプロパティから値を取得する方法

spring

springのproperty-placeholderdを使って、プロパティファイルの値をspring設定ファイル(XML)へ展開する方法を紹介します。

今回紹介する方法は、環境毎などで変数の値が変わるときにすごく便利な方法です。

[スポンサーリンク]

このページでやること

property-placeholderdの使い方を紹介します。

プロパティファイルを用意します。

まずはspring設定ファイル(XML)へ展開するための値を用意します。

今回は、test.propertiesというファイル名にします。
置き場所は、resourcesフォルダの直下にします。

example.value=test

補足ですが、Mavenを使えばプロパティファイルの値も変えることができます。
【Maven】profilesを使って、環境毎に異なる設定値(propertyファイル)を変更する方法

property-placeholderの設定をします。

spring設定ファイル(servlet-context.xml)へproperty-placeholderの設定を行っていきます。

property-placeholderで値を取得する対象のプロパティファイルを指定します。
classpath:*.propertiesはクラスパス配下(resources)の全てのプロパティファイルが対象となります。

${example.value}は、プロパティexample.valueの値がセットされます。
以下の例だと、userという変数へtestという値が入ることになります。

<?xml version="1.0" encoding="UTF-8"?>
.
.
<context:property-placeholder location="classpath:*.properties" />
<beans:bean id="exampleService" class="jp.co.example.service.ExampleService">
	<beans:property name="user" value="${example.value}" />
</beans:bean>
.
.

さいごに

property-placeholderを使って変数を書き換える方法は結構メジャーかと思います。
やはりどのプロジェクトでも開発環境毎に変数を書き換えるような場面があるので、property-placeholderを使う場面もそれに伴って増えてきます。

環境毎に値を変更するには、もちろんproperty-placeholderだけでも使えますが、Mavenのprofilesと一緒に使ってやると更に便利度がアップします!
こちらの記事も参考にしてみてください。それでは!
【Maven】profilesを使って、環境毎に異なる設定値(propertyファイル)を変更する方法