Jakarta ee 查找具有自定义注释的所有bean
我在Wildfly 10上使用Java EE,希望创建一个名为Jakarta ee 查找具有自定义注释的所有bean,jakarta-ee,Jakarta Ee,我在Wildfly 10上使用Java EE,希望创建一个名为@WorkflowFinished的注释,它有一个方法,在发生某些事情时调用该方法 我希望能够有多个带有此注释的@无状态EJB,当我的业务服务完成时,它应该搜索带有此注释的所有EJB并对它们调用一个方法 我该怎么办?大概是这样的: public void process(SomeBean b){ b.doSomething(); List<?> listOfAnnotatedBeans = getAnnota
@WorkflowFinished
的注释,它有一个方法,在发生某些事情时调用该方法
我希望能够有多个带有此注释的@无状态
EJB,当我的业务服务完成时,它应该搜索带有此注释的所有EJB并对它们调用一个方法
我该怎么办?大概是这样的:
public void process(SomeBean b){
b.doSomething();
List<?> listOfAnnotatedBeans = getAnnotatedEJBs(WorkflowFinished.class);
for(? ejb : listOfAnnotatedBeans){
ejb.someMethod(b);
}
}
import com.some.WorkflowFinished;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.util.AnnotationLiteral;
.
.
.
@Inject
BeanManager beanManager;
for (Bean<?> bean : beans) {
Set<Bean<?>> beans = beanManager
.getBeans(Object.class,new AnnotationLiteral<WorkflowFinished>() {});
公共作废流程(SomeBean b){
b、 doSomething();
List ListofAnotatedBeans=getAnnotatedEJBs(WorkflowFinished.class);
对于(?ejb:ListofAnotatedBeans){
ejb.someMethod(b);
}
}
如何在EJB上下文中执行此操作,而不是Spring?您可以使用特定注释或注释数组在当前“上下文”中迭代所有bean,如下所示:
public void process(SomeBean b){
b.doSomething();
List<?> listOfAnnotatedBeans = getAnnotatedEJBs(WorkflowFinished.class);
for(? ejb : listOfAnnotatedBeans){
ejb.someMethod(b);
}
}
import com.some.WorkflowFinished;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.util.AnnotationLiteral;
.
.
.
@Inject
BeanManager beanManager;
for (Bean<?> bean : beans) {
Set<Bean<?>> beans = beanManager
.getBeans(Object.class,new AnnotationLiteral<WorkflowFinished>() {});
import com.some.WorkflowFinished;
导入javax.enterprise.inject.spi.Bean;
导入javax.enterprise.inject.spi.BeanManager;
导入javax.enterprise.util.AnnotationLiteral;
.
.
.
@注入
BeanManager BeanManager;
for(Bean:Bean){
SetThat work OK,现在我如何从Bean
获取我的类。如果我在for循环中将Bean
转换到类实现的接口,我会得到一个异常,即使Bean.getBeanClass()
返回正确的类。我如何从Bean
获取实际的类实例?