有条件的@PostConstruct 注解

Posted

技术标签:

【中文标题】有条件的@PostConstruct 注解【英文标题】:Conditional @PostConstruct annotation 【发布时间】:2018-03-15 14:04:12 【问题描述】:

我有时可能不需要根据通过 JVM 参数传递的值在启动时对 bean 进行后期构造。

我尝试了@Conditional 注释,但它只适用于@Bean 注释。

您以前尝试过/需要这样的东西吗?

【问题讨论】:

【参考方案1】:

AFAIK Conditional 不能与 postconstruct 混合使用。所以我的建议

    在 beans 声明中添加两个不同的 beans,一个带有 postconstruct,一个没有 as use @Conditional

    添加验证您的应用程序参数的程序代码,例如:

    import org.springframework.core.env.Environment;
    
    private final Environment env;
    
    public void execute() 
        if (env.getProperty("condition") == "condition") 
        
    
    

    在 1 中使用近似值但 @Profile 并将活动配置文件作为参数 -Dspring.profiles.active=my_profile 传递

【讨论】:

以上是关于有条件的@PostConstruct 注解的主要内容,如果未能解决你的问题,请参考以下文章

@PostConstruct和@PreDestroy注解

@PostConstruct和@PreConstruct注解

@PostConstruct与@PreConstruct注解

@PostConstruct注解

Java开发之@PostConstruct和@PreDestroy注解

Java开发之@PostConstruct和@PreConstruct注解