TL; DR @Profile や @ConditionalOnExpression を使う。ちょっとつらいけどがんばる。 サンプルコードは下記のとおり。 github.com やりたいこと システム日時を取得するユーティリティがあるが、テストのときに日時が毎回変わると困るので、特定の場合は固定値を返すようにしたい*1。 TERASOLUNAの下記機能とほぼ同じ。ただしSpring Bootなので、XMLを使わずアノテーションでなんとかしたい。 terasolunaorg.github.io 環境 Spring Boot 2.5.0 解決方法 @Profile アノテーションを使用し、指定されたプロファイルに応じてインジェクションされる実装を切り替える。 例えば、インタフェース DateTimeUtils に対して本物のシステム日時を返す実装クラス SystemDateTimeUtils