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对其进行注释,会发生什么?