java 如何检查CDI是否启用?

标签 java dependency-injection 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?
 }

最佳答案

如果您的类路径中有 cdi api,请尝试以下操作:

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

关于java 如何检查CDI是否启用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61333554/

相关文章:

java - Android 6.0(棉花糖): How to play midi notes?

dependency-injection - 使用 Guice @Provides 注入(inject) 3rd 方库

jsf - 获取具有其他名称的 session 作用域 bean 的新实例

java - Java.Net.Uri 和 Android.Net.Uri 有什么区别

java - HashMap.clear() 减少内存?

angular - 如何在 Angular 6 中用 spy 对象替换组件范围的服务?

jsf - 在 JSF 命名 bean 中注入(inject) Java 对象

java - @Produces 在 JavaEE 上下文中如何工作?

jakarta-ee - IDEA错误 "Managed bean must be a concrete class, or is annotated with @Decorator"

java - 管理 JAX WS 工件的问题