2017-01-20 56 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