当前位置: 首页 > 面试题库 >

类对象获取器上的@Conditionalonexpression

钱劲
2023-03-14
问题内容

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

例如:

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

}

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


问题答案:

是的,可以,但是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");
        }
    }
}


 类似资料:
  • 当一个线程获得一个对象(比如类B)的监控锁时,它是否获得了属于它的超类(比如类A,其中B扩展了A)的对象的监控锁? 观察 #1 - 当一个线程(通过同步方法拥有派生对象 B 的监视器锁)在超类 A 中调用 wait() 时,第二个线程获取对象 B 的监视器锁并在 A 中进行等待。最后,两个线程同时退出 B 的对象监视器。 我的理解是线程应该在其拥有锁的对象上调用否则这将导致非法监视器状态异常。在

  • 问题内容: 我创建了一个JavaScript对象,但是如何确定该对象的类呢? 我想要一些类似于Java的方法。 问题答案: JavaScript中没有Java的完全对应版本。通常,这是由于JavaScript是一种基于原型的语言,而不是Java是一种基于类的语言。 一些例子: 注意:如果使用Uglify编译代码,它将更改非全局类名。为了防止这种情况,Uglify有一个参数,可以使用gulp或gru

  • 问题内容: 有什么解决方案来获取对象的函数名称? -没有有关或的信息。有可能得到其中之一吗? 问题答案: 获取对象的构造函数,然后检查其name属性。 返回“ myClass”。

  • 问题内容: 我有以下代码。我想掌握用来创建内部类对象的外部类对象。我该怎么做? 编辑:好,你们中的一些人建议通过添加方法来修改内部类: 但是,如果我没有控制权来修改内部类,那(只是确认一下),我们还有其他方法可以从内部类对象中获取相应的外部类对象吗? 问题答案: 在内部类本身中,你可以使用。该表达式允许引用任何词法包围的实例,在JLS中被描述为。 我认为没有办法从内部类的代码之外获取实例。当然,你

  • 问题内容: 是否有一个JavaScript的等效的Java的? 问题答案: 是否有与Java等效的JavaScript ? 没有 。 名称为。不论类别如何,的类别名称均为。ES2015环境中的内置构造函数具有正确的属性;例如是。 但是,这里有各种各样的骇客,它们都以一种或另一种方式下降: 这是一种可以满足您需要的技巧-请注意,它会修改Object的原型,而人们对此并不满意(通常是出于充分的理由)

  • 我在spring boot API工作。这是我第一次遇到这个问题。 谢谢你的回答:)