Red Hat Training

A Red Hat training course is available for Red Hat Fuse

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
{
  ...
}