gat*_*son 3 java inheritance annotations jersey-2.0
我正在创建一些具有相同形式的资源类,所以一个好主意是使用 DRY 并使用继承。所以我创建了一个 RootResource 类并在那里放置了一些方法。我想注释它们,然后在子类中实现它们,但它不起作用!这是一个示例代码:
public abstract class RootResource {
@GET
@Path("/{id: .*}")
public abstract String getInfo(String uid);
}
@Path("/user")
public class UserResource extends RootResource{
public String getInfo(@PathParam("id") String uid) {
System.out.println("Hello!");
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用球衣 2.6。任何的想法?谢谢。
我在使用 Jersey 时遇到了同样的问题。JAX-RS的Java EE 标准声明如下:
3.6 注解继承
JAX-RS 注释可以用于 > 超类或已实现接口的方法和方法参数。此类注释由相应的子类或实现类方法继承,前提是该方法及其参数本身没有任何 JAX-RS 注释。超类上的注解优先于已实现接口上的注解。在多个实现的接口中定义的冲突注释的优先级是特定于实现的。
如果子类或实现方法有任何 JAX-RS 注释,则忽略超类或接口方法上的所有注释。
虽然 Jersey 作为参考实现对这个声明非常严格,但Resteasy实现更宽松,并且对我有用。
| 归档时间: |
|
| 查看次数: |
2943 次 |
| 最近记录: |