@Profile
で実装クラスを切り替えるサンプルコード
Spring Bootでプロファイルごとに実装を切り替える - ser1zw's blog
- Spring Boot 2.5.0
- OpenJDK 16.0.1
$ mvn clean package
$ java -jar target/demo-0.0.1-SNAPSHOT.jar
$ curl localhost:8080/hello
起動時のオプションでプロファイルを切り替える場合は下記のようにする。
$ java -jar target/demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=with-fixeddatetime
もしくは application.properties
を編集する。
インタフェース DateTimeUtils
について、プロファイルごとに実装クラスを切り替える。
- プロファイルが
with-adjusteddatetime
の場合は、固定日時を返すFixedDateTimeUtils
を使う - プロファイルが
with-adjusteddatetime
の場合は、前日の日時を返すAdjustedDateTimeUtils
を使う - それ以外の場合は、本物のシステム日付を返す
SystemDateTimeUtils
を使う
各実装クラスに @Profile
を指定することで切り替わるようにしている。
@ConditionalOnExpression
で正規表現を使用することも可能。