我正在使用Jersey 2.10.1创建RESTful Web服务。我想有一个基类,它将有一个中心位置来创建一些我将在整个应用程序中传播的ID。此基类还将具有try catch块,其中将捕获子类中生成的任何异常。我想知道这个基类是否应该扩展ServletContainer?我正在尝试开发模板模式。我的基类将被调用,然后将调用委托给子类。有没有更好或替代方法这样做?我将不胜感激任何建议或提示。
public class BaseClass extends ServletContainer {
public Value<Integer> service(URI baseUri, URI requestUri,
final HttpServletRequest request,
HttpServletResponse response) throws ServletException,IOException {
1. GENERATE UNIQUE ID
try {
return webComponent.service(baseUri, requestUri, request, response);
} catch(Throwable e) {
//LOG the exception here
}
}
}
@Path("/test")
public class Child extends BaseClass {
}
答案 0 :(得分:0)
您可以创建抽象BaseClass并创建抽象方法generateId
。孩子们必须实施它。在BaseClass的service
方法中,首先调用generateId()
,它将调用每个子项的具体实现。