如何将对象注入路线?

时间:2017-01-13 13:18:17

标签: java jersey jetty

我有一个有三种服务的系统。每个服务都有一个容器,用于保存配置信息和其他信息。

这些容器还将其路由注册到HTTP服务器。现在,我需要一种方法来使路由访问这些容器。这是将容器路由注册到HTTP服务器的函数。

public void initRoutes(ServletContextHandler servletContextHandler) {
    ResourceConfig resourceConfig = new ResourceConfig();

    // I want to register this class instance to the routes
    // so, basically do something like the following:
    // resourceConfig.inject(MyServiceContainer.class, this);

    ServletContainer container = new ServletContainer(resourceConfig);
    ServletHolder holder = new ServletHolder(container);
    holder.setInitOrder(0);
    holder.setInitParameter("jersey.config.server.provider.packages", "com.stackoverflow.my_service.rest");

    servletContextHandler.addServlet(holder, "/v1/my_service/*");
}

以下是一个示例资源:

@HTTPHandlerClass
@Path("/sessions")
public class Sessions {

    // And have something like the following here:
    // MyServiceContainer container

    @POST
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    @Produces(MediaType.APPLICATION_JSON)
    public Response createSession() {
        try {
            JSONObject requestBody = new JSONObject();
            this.container.sendTestRequest();
            return Response.ok(response.toString()).build();
        } catch(UnirestException e) {
            return Response.status(400).build();
        }
    }
}

我正在使用

  

org.glassfish.jersey - >版本:2.22

     

org.eclipse.jetty - >版本:9.3.9.v20160517

我在网上看到的所有东西都让我很困惑,以至于我不知道该怎么做了。

0 个答案:

没有答案