我有一个打包在EAR中的应用程序,其中包含许多JAR(带有EJB、库、第3方库……)和一个WAR(同样包含一些其他JAR)。该应用程序部署在JEE7容器(Wildfly8.0.0.Final)中并使用CDI(Weld2.1.2.Final随Wildfly一起提供)。据我了解,Weld在应用程序范围内处于Activity状态,并且具有单一的应用程序范围View。因此,我想在何处使用CDI并不重要-它可以正常工作。但有一些迹象表明这不是真的。例如。toString-BeanManager的方法在不同的模块中显示不同的输出:在war中打包的某个模块中使用BeanManager时,我得到为te
我正在尝试使用BeanManager而不是Instance.select().get()创建CDI托管bean的实例。这被建议作为解决我一直遇到的ApplicationScopedbean及其依赖项的垃圾收集问题的解决方法-请参阅CDIApplicationandDependentscopescanconspiretoimpactgarbagecollection?对于背景和这个建议的解决方法。如果您在ApplicationScopedbean上使用Instance编程查找方法,则Instance对象和您从中获得的任何bean最终都依赖于ApplicationScopedbean,因此
CDI类BeanManager有几个方法接受Annotation类型的参数或Annotation....例如BeanManager.getBeans(...).我想知道我应该如何将我的注释作为参数传递给这些方法。我试过了BeanManager.getBeans(MyBean.class,MyAnnotation.class),但它不是那样工作的。我见过Class.isAnnotation(),但没有什么比Class.asAnnotation()将其检索为Annotation类型。都不是BeanManager.getBeans(MyBean.class,@MyAnnotation)工作,