Java 如何将CDI拦截器创建为单例?
代码Java 如何将CDI拦截器创建为单例?,java,ejb,cdi,interceptor,Java,Ejb,Cdi,Interceptor,代码 @Interceptor(SomeInterceptor.class) public class SomeClass { @Interceptor(OtherInterceptor.class) public Object method1 (Object param) { return param; } public Object method2 (Object param) { return param; } }
@Interceptor(SomeInterceptor.class)
public class SomeClass {
@Interceptor(OtherInterceptor.class)
public Object method1 (Object param) {
return param;
}
public Object method2 (Object param) {
return param;
}
}
问题1
是否在每个方法调用中创建了SomeInterceptor和OtherInterceptor
问题2
是否可以“设置”Inteceptor类使其成为singleton?例如,某些拦截器和其他拦截器只创建一次。根据CDI规范,每个它拦截的CDI bean最多应该有一个拦截器,并且其生命周期与该bean的生命周期相关联。
因此,如果您的bean是@ApplicationScoped,那么只有一个“单音”拦截器。
还有一个问题。如果在@ApplicationScoped对其进行注释,会发生什么?