Java 在获取响应时使用外部对象

Java 在获取响应时使用外部对象,java,dependency-injection,jersey,jetty,Java,Dependency Injection,Jersey,Jetty,我正在用Jersey和Jetty开发RESTAPI服务。 这非常简单,我有许多端点,如下所示: @GET @Path("/username/{username : [a-zA-Z][a-zA-Z_0-9]}") @Produces(MediaType.TEXT_PLAIN) public String getUsername(@Context UriInfo uriInfo, String content) { MultivaluedMap<String, String> q

我正在用Jersey和Jetty开发RESTAPI服务。 这非常简单,我有许多端点,如下所示:

@GET
@Path("/username/{username : [a-zA-Z][a-zA-Z_0-9]}")
@Produces(MediaType.TEXT_PLAIN)
public String getUsername(@Context UriInfo uriInfo, String content) {
    MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
    String nameParam = queryParams.getFirst("name");
    //Dataset<Row> df = GetDataFrame.getDF();
    return "test";
}
SourceHandler source = new SparkHandler(inputSource);
    source.loadIntoMemory();

    Server server = new Server(8080);
    ServletContextHandler ctx =
            new ServletContextHandler(ServletContextHandler.NO_SESSIONS);

    ctx.setContextPath("/");
    server.setHandler(ctx);

    ServletHolder serHol = ctx.addServlet(ServletContainer.class, "/rest/*");
    serHol.setInitOrder(1);
    serHol.setInitParameter("jersey.config.server.provider.packages",
            "com.ed7.res");
我想在GET响应中使用源对象。 在泽西岛有这样做的最佳实践吗? 否则,我将使用一个静态字段/静态方法创建另一个类,该类返回该特定对象。

您可以使用DI。要配置它,您可以创建一个独立的
ServiceLocator
,并使用

然后您可以将
@注入
SourceHandler
到任何需要的地方

@Path("whatever")
public class Resource {

    @Inject
    private SourceHandler sourceHandler;
}
@Path("whatever")
public class Resource {

    @Inject
    private SourceHandler sourceHandler;
}