java-ee – 创建忽略注释值的拦截器限定符()
发布时间:2020-12-14 05:42:08 所属栏目:Java 来源:网络整理
导读:有没有办法创建一个拦截器限定符注释,忽略注释字符串值以进行限定? 例如: Log.java @Inherited@InterceptorBinding@Target({ElementType.METHOD,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public @interface Log { String value() default ""
有没有办法创建一个拦截器限定符注释,忽略注释字符串值以进行限定?
例如: Log.java @Inherited @InterceptorBinding @Target({ElementType.METHOD,ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Log { String value() default ""; // <---- ignore this } LogInterceptor.java @Log @Interceptor public class LogInterceptor implements Serializable { ... } Usage.java @Log("message for this log") public String interceptedMethod(String param) { ... } 这不起作用,因为注释值(“此日志的消息”)作为限定符,但我想使用值()不作为限定符,而是使用消息日志. 解决方法
您可以使用@Nonbinding注释来实现此目的.您可以通过注释成员@Nonbinding来强制容器忽略限定符类型的成员.请看以下示例:
@Qualifier @Retention(RUNTIME) @Target({METHOD,FIELD,PARAMETER,TYPE}) public @interface PayBy { PaymentMethod value(); @Nonbinding String comment() default ""; } 通过@PayBy限定符匹配bean时,将忽略注释. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |