小编典典

类对象获取器上的@Conditionalonexpression

java

我想知道是否有一种方法可以通过评估在运行时获取其值的类的对象,在运行时使用@conditionalonexpression来启用类。

例如:

@ConditionalOnExpression(#{propertyobject.getexenabled()})
class ex1{

}

propertyobject实例在运行时填充了值(在程序开始时说)是否可以实现?


阅读 512

收藏
2020-11-26

共1个答案

小编典典

是的,可以,但是getexenabled()方法应该是静态的。

喜欢:

@SpringBootApplication
public class So44456388Application {

    public static void main(String[] args) {
        SpringApplication.run(So44456388Application.class, args);
    }

    public static class Evaluator {
        public static boolean getexenabled() {
            //your logic here
            return true /*false*/;
        }
    }

    @Component
    @ConditionalOnExpression("#{T(com.stackoverflow.so44456388.So44456388Application$Evaluator).getexenabled()}")
    public static class RichBean {
        @PostConstruct
        private void init() {
            System.out.println("RichBean");
        }
    }
}
2020-11-26