我試圖界定與攔截器綁定界面記錄器攔截:無法爲後期構造方法使用@Target({METHOD,TYPE})的攔截器綁定接口?
@Inherited
@InterceptorBinding
@Retention(RUNTIME)
@Target({METHOD, TYPE})
public @interface OperationLogger {
@Nonbinding
public String operationName() default "";
@Nonbinding
public String details() default "";
}
但GlassFish的4.1回報編譯此錯誤消息:
攔截器的生命週期回調攔截[類 融爲一體。 adldoost.dwm.security.interceptor.OperationLoggerInterceptor 截取@OperationLogger]聲明和攔截器綁定 接口com.adldoost.dwm.security.interceptorbinding.OperationLogger 以METHOD作爲它的@Targ等。
也NETBEANS 8.1編輯告訴:
爲生命週期回調攔截器可以僅聲明定義爲@Target(TYPE)攔截 綁定類型。攔截器 com.adldoost.dwm.security.interceptor.OperationLoggerInterceptor 聲明不匹配攔截器綁定 com.adldoost.dwm.security.interceptorbinding.OperationLogger。
那麼我的錯誤是什麼?
我的目標設置爲:@Target({METHOD,TYPE})不僅是方法!我是否需要將其更改爲僅TYPE?! –
正如我所說的,無論是用'@Target(TYPE)'註釋你的綁定還是不要將'@ OperationLogger'添加到你的類和它的生命週期回調方法。 – andrepnh