我一直在使用Jersey Framework并提出了一个问题。
是否可以创建一个可以处理任何实体的CRUD方法的泛型类?原因是有一个类可以处理CRUD的东西并且只是为添加的新实体扩展它会很好。
据我所知,最大的障碍是@Path
只能为该值取一个常量。我做了一些实验,并注意到我只能将最终的变量传递给@Path
注释。
我在这里缺少什么或者这是框架的限制吗?
答案 0 :(得分:1)
如果有人再遇到这个问题,我们没有找到一种通用的方法,但我们找到了一种最小化代码的方法。在超类中,我们有一个泛型类,如:
protected Response add(T t) {
...
}
其中包含所有逻辑并返回Response对象。在子类中,我们所要做的就是扩展它:
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response add(MyContact contact) {
return super.add(contact);
}
如果要自定义URL,您甚至可以在此处使用@Path
注释。最小化代码以便轻松扩展它,但我认为我们不能再那么通用了。希望这有帮助!