jersey:可以从父类继承路径

时间:2017-01-20 15:22:06

标签: java rest jersey

本着DRY的精神,我试图捆绑适用于中心类中所有REST资源的注释和共享代码。共享部分路径似乎不起作用。

假设我在/v1/users/v1/items有两个REST资源。 Jersey资源都扩展了相同的父类V1BaseResource。他们可以继承v1 - 路径的一部分吗?

示例:

@Path("v1")
@Produces(MediaType.APPLICATION_JSON)   // applies to all child-classes
public class V1BaseResource {

    // maybe even some shared code
}

UsersResource

@Path("users")
public class UsersResource extends V1BaseResource {

    @GET
    public Response getUsers() ...
}

ItemsResource

@Path("items")
public class ItemsResource extends V1BaseResource {

    @GET
    public Response getItems() ...
}

不幸的是,实际资源@Path注释会覆盖路径,而不是添加

这是否可行(不使用sub-resource locators)?

1 个答案:

答案 0 :(得分:3)

如果你看一下JSR,那是不可能的:

  

如果子类或实现方法具有任何JAX-RS注释,则忽略超类或接口方法上的所有注释。

这是JSR:JSR-339。 见第3.6节