首页 > 解决方案 > java如何检查是否启用了CDI?

问题描述

如何检查当前环境(SE 或 EE)中是否启用了 CDI?如果启用,CDI 应该用于实例化一个类(例如 Foo),否则使用 new Foo()。

Foo foo;
if (isCDIEnabled()) {
  // how to get CDI container from current environment
  foo = cdiContainer.select(Foo.class).get();
}
else
   foo = new Foo();

如何实施

 private boolean isCDIEnabled() {
     // how?
 }

标签: javadependency-injectioncdi

解决方案


如果你的类路径中有 cdi api,试试这个:

    try{
        CDI.current();
    }catch(IllegalStateException e){
        // no cdi available 
    }

推荐阅读