59.3.3. 使用 Java 注解

概述

Apache CXF 提供四个 Java 注解,允许开发人员指定端点使用的拦截器链。与将拦截器附加到端点的其他方法不同,注解附加到应用程序级别的工件。所用的构件决定了注解的作用范围。

放置注解的位置

注解可以放在以下工件中:

  • 定义端点端点接口(SEI)

    如果注解放置在 SEI 上,则实施该接口的所有服务提供商以及所有使用 SEI 创建代理的用户都会受到影响。

  • 服务实施类

    如果注解放在实施类上,则使用实施类的所有服务提供商都将受到影响。

注解

该注解都位于 org.apache.cxf.interceptor 软件包中,在 表 59.2 “拦截器链注解” 中描述。

表 59.2. 拦截器链注解

注解描述

InInterceptors

指定入站拦截器链的拦截器。

OutInterceptors

指定出站拦截器链的拦截器。

InFaultInterceptors

指定入站故障拦截器链的拦截器。

OutFaultInterceptors

指定出站错误拦截器链的拦截器。

列出拦截器

拦截器列表使用 在链注解中列出拦截器的语法 中显示的语法指定为完全限定类名称列表。

在链注解中列出拦截器的语法

interceptors={"interceptor1", "interceptor2", ..., "interceptorN"}

示例

将拦截器附加到服务实现中 显示将两个拦截器附加到使用 SayHiImpl 所提供的逻辑的入站拦截器链的注解。

将拦截器附加到服务实现中

import org.apache.cxf.interceptor.InInterceptors;

@InInterceptors(interceptors={"com.sayhi.interceptors.FirstLast", "com.sayhi.interceptors.LogName"})
public class SayHiImpl implements SayHi
{
  ...
}