@Profileに依存して呼び出される必要がある、1つの構成クラスに複数の@PostConstructアノテーション付きメソッドを持たせたいとします。しかし、私はこのアノテーションを付け一つの方法を持つことができます@PostConstructのjavadocのに応じ@Profileに依存して@PostConstructが呼び出されます
@Configuration
public class SilentaConfiguration {
private static final Logger LOG = LoggerFactory.getLogger(SilentaConfiguration.class);
@Autowired
private Environment env;
@PostConstruct @Profile("test")
public void logImportantInfomationForTest() {
LOG.info("********** logImportantInfomationForTest");
}
@PostConstruct @Profile("development")
public void logImportantInfomationForDevelopment() {
LOG.info("********** logImportantInfomationForDevelopment");
}
}
:あなたは、コードは次のように切り取ら想像することができます。 SpringのJira https://jira.spring.io/browse/SPR-12433のオープンな改善があります。
この要件をどのように解決しましたか?私はいつもこの設定クラスを複数のクラスに分けることができますが、もっと良いアイデアや解決策があるかもしれません。
BTW。上記のコードは問題なく実行されますが、プロファイル設定に関係なく両方のメソッドが呼び出されます。
ちょうどそれをやってください。 'Environment'は、プロファイルがアクティブであるかどうかを伝えます。したがって、単純なif文を作成します。 –
またはクラスを2つに分割し、クラスレベルで注釈を付けた適切な@Profileを付けてください。 – Ruben
この問題のメイトの投票:https://jira.spring.io/browse/SPR-12433 –