0

我目前正在使用带有嵌入式 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,但不确定这是否是要走的路)。

4

1 回答 1

1

在您的应用程序(Spring、Guice)中使用一些依赖注入来在需要访问/修改它的所有资源中注入一个 hashmap 实例。

于 2012-09-21T12:55:43.727 回答