我目前正在使用带有嵌入式 Jetty 的 Jersey 构建一个简单的 REST 接口。
Server server = new Server(8080);
ContextHandlerCollection contexts = new ContextHandlerCollection();
ServletContextHandler servletContextHandler = new ServletContextHandler(server, "/", ServletContextHandler.SESSIONS);
ServletHolder sh = new ServletHolder(ServletContainer.class);
servletContextHandler.addServlet(sh, "/*");
server.setHandler(servletContextHandler);
sh.setInitParameter("com.sun.jersey.config.property.packages", "my.package.containing.jersey.resource");
在我的资源@GET, @PUT, @DELETE
中,我定义了所有从哈希图中获取/放置/删除对象的方法。
目前我在我的资源类中将其定义HashMap
为静态ConcurrentHashMap
的,到目前为止效果很好。
public class MyResource {
private static final Map<String, MyObjects> myRepository = new ConcurrentHashMap<String, MyObjects>();
@GET
...
@PUT
...
}
但是,我计划让HashMap
潜在的其他资源和 servlet 可以访问。
因此希望将它添加到一些更广泛的应用程序上下文中。
但不确定,如何最好地做到这一点?
理想情况下以编程方式。
(我已经看到 jetty.webapp 中有一个 WebAppContext,但不确定这是否是要走的路)。