上下文:
带有Wildfly 8.1.0
的 CDI 1.2
根据CDI
的{{1}}规范,如果注释CDI1.2
beans.xml
中声明cdi
但是,除非我添加@Priority(somepriorityvalue)
注释
@Dependent
和拦截器绑定:
@RequiresLoggedInAccount
@Interceptor
@Priority(Interceptor.Priority.APPLICATION)
public class MyInterceptor {
@AroundInvoke
public Object intercept(final InvocationContext ic) throws Exception {
//intercept something and then...
return ic.proceed();
}
}
请注意,拦截器绑定和拦截器是在不同的jar模块中定义的(因此@Priority的目的)。
这是我忽略的吗?为什么我必须为拦截器添加@Inherited
@Documented
@InterceptorBinding
@Target({METHOD, TYPE})
@Retention(RUNTIME)
public @interface RequiresLoggedInAccount {
}
的{{1}}范围?
是不是因为我在CDI
@Dependent
答案 0 :(得分:0)
WildFly 8.1附带Weld 2.1.x(我忘了x,但2.1符合CDI 1.1)。您可以对其应用补丁以升级到符合CDI 1.2的Weld 2.2,这个问题应该为您解决。
您所看到的行为与CDI 1.1实施一致。