避免通过CXF中的@Path和@ PathParam / @ BeanParam进行冗余

时间:2019-02-07 12:40:51

标签: java jax-rs cxf

我有一些目前看起来像这样的REST端点:

@Path("/{type}/{name}/doSomething")
public void doSomething(@PathParm("type") final String type, @PathParm("name") final String name);

通过在方法级别的@Path批注和参数级别的@PathParam批注中指定参数,您已经注意到了冗余。

由于typename总是在一起并且用于多个端点,因此我想将它们聚合到一个@BeanParam Java bean中。但这使得@Path与Bean内部参数之间的关系更加难以发现,因为@PathParam批注将移至Bean类:

@Path("/{type}/{name}/doSomething")
public void doSomething(@BeanParam final TypeAndName typeAndName);

使用此Java bean类:

public class TypeAndName {

  @PathParam("type")
  private String type;

  @PathParam("name")
  private String name;

  // getters, setters, equals, hashcode
}

第一步可能是为两个参数创建常量,并在两个地方都使用它们以提高可读性,但这不能解决冗余问题。

是否有任何方法可以在bean本身中指定与bean成员相对应的path元素,以避免这种冗余?还是有其他/更好的方法可以将两个值保持在一起?

0 个答案:

没有答案