不同端点的CXF拦截器配置

时间:2019-02-08 15:25:59

标签: java spring cxf

当前的CXF配置:

<jaxrs:server id="rest" address="/path">
    <jaxrs:serviceBeans>
        <ref bean="myService" />
    </jaxrs:serviceBeans>
    <jaxrs:providers>
        <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
    </jaxrs:providers>
    <jaxrs:inInterceptors>
        <ref bean="restLogInterceptor" />
    </jaxrs:inInterceptors>

和春天休息:

@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
@Path("path")
public interface Service {

    @GET
    @Path("{id}")
    Response inquire(@PathParam("id") String id);

    @GET
    @Path("{id}\aaa")
    Response inquire(@PathParam("id") String id);

    @GET
    @Path("{id}\bbb")
    Response inquire(@PathParam("id") String id);

    @POST
    @Path("{id}")
    Response update(@PathParam("id") String id, Instruction instruction);

任何方式

  1. 对于具有相同路径的GET和POST端点具有不同的拦截器配置?
  2. 对于具有路径变量的端点,是否有不同的拦截器配置?使用“ / path / * / aaa”之类的掩码?

1 个答案:

答案 0 :(得分:0)

我没有完全理解您在第一个问题中想要的内容。但是,如果要使用相同的路径声明GET和POST方法,则可以使用它。 JAX-RS具有@PathParam批注,该批注从请求中的路径获取参数。将其与if语句一起使用,可以创建不同的逻辑。