spring_logo01

Spring-Bootでプロパティファイルを複数設定し読み込ませるには

開発環境と本番環境でプロパティファイル分けてってヤツではありません。

単純に、applicationプロパティ(application.properties, application.ymlなど)以外に別のプロパティファイルを作成し、Spring-Boot起動時にそいつも一緒に読み込ませるというやり方です。

クラスパスが通っている場所にプロパティファイルを配置します。

conf
 |-application.yml
 |-scheduler.yml  ←これがターゲット

Spring-Bootの起動時オプションに以下のように指定してやります。

--spring.config.location=classpath:scheduler.yml

 
Eclipseでデバッグする際には、デバッグの実行構成でプログラム引数に上記を指定してやります。

シェルから起動する際などには

java -jar myproject.jar --spring.config.location=classpath:scheduler.yml

という形です。

なかなか情報が見当たりにくかったので備忘録として書いておきます。

上記のイメージとしてはDB接続情報(application.yml)などとバッチスケジュールの記載ファイル(scheduler.yml)を分けてやる事ができます。

scheduler.yml

scheduler:
  cron:
    CalcExecutionController: 0/10 * * * * *

JAVA側

@Controller
public class CalcExecutionController extends AbstractAssetStabController
{
	@Scheduled(cron = "${scheduler.cron.CalcExecutionController}", zone = "Asia/Tokyo")
	public void execute()
	{
            ...

さらにもう1つのファイルも読み込ませたい時はカンマで区切るようです。

--spring.config.location=classpath:/default.properties,classpath:/override.properties

Spring-Boot公式リファレンス

24.3 Application property files
http://docs.spring.io/spring-boot/docs/1.4.1.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-external-config-application-property-files

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です