2017-01-20 57 views
1

本着DRY的精神,我试图将适用于所有REST资源的注释和共享代码绑定到中心类中。共享部分路径似乎不起作用。jersey:可能从父类继承路径

比方说,我有两个REST资源/v1/users/v1/items。 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

如果你看看JSR,这是不可能的:

如果子类或实现方法有任何JAX-RS注解,那么所有的超类或接口方法的注释被忽略。

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

+0

感谢您的快速响应!你会如此善良,并添加一个链接到报价?非常感激。 – Hank

+1

我更新了JSR ;-) – Rouliboy