我希望在一个配置类中拥有多个被@PostConstruct注解的方法,并且这些方法应该根据@Profile的设定而有所不同。你可以想象以下这段代码:
@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");
}
}
根据@PostConstruct的Javadoc,我只能有一个用这个注解标记的方法。Spring的Jira中有一个开放性改进https://jira.spring.io/browse/SPR-12433
您是如何解决这个要求的?我可以将此配置类拆分为多个类,但也许您有更好的想法/解决方案。
顺便说一句,上面的代码运行良好,但无论配置文件设置如何,两种方法都会被调用。
Environment
可以告诉你配置文件是否处于活动状态。因此,创建一个简单的 if 语句即可。 - M. Deinum