JAX-RS 将实例注册为端点?
JAX-RS register instance as an endpoint?
我有一个与此类似的休息端点class:
@Path("/users")
public class Users {
private final Database database;
public Users(Database database) {
this.database = database;
}
@GET
@Path("/{id}")
public Response Get(@PathParam("id") int id) {
User user = this.database.get(id);
return Response.ok(user).build();
}
}
还有一个主要方法:
public class Main {
public static void main(String[] args) {
Database database = new SomeDBImplementation();
Users users = new Users(database);
HttpServer server = HttpServerFactory.create("http://localhost:8080");
server.start();
}
}
如何使服务器使用用户实例作为端点?我正在使用球衣服务器
您需要创建一个 ResourceConfig
instance and then pass it to the HttpServerFactory.create(uri, resourceConfig)
method. There are different implementations of ResourceConfig
. The most basic one is the DefaultResourceConfig
。要注册一个资源实例,你只需做
ResourceConfig config = new DefaultResourceConfig();
config.getRootResourceSingletons().add(users);
HttpServer server = HttpServerFactory.create(uri, config);
我有一个与此类似的休息端点class:
@Path("/users")
public class Users {
private final Database database;
public Users(Database database) {
this.database = database;
}
@GET
@Path("/{id}")
public Response Get(@PathParam("id") int id) {
User user = this.database.get(id);
return Response.ok(user).build();
}
}
还有一个主要方法:
public class Main {
public static void main(String[] args) {
Database database = new SomeDBImplementation();
Users users = new Users(database);
HttpServer server = HttpServerFactory.create("http://localhost:8080");
server.start();
}
}
如何使服务器使用用户实例作为端点?我正在使用球衣服务器
您需要创建一个 ResourceConfig
instance and then pass it to the HttpServerFactory.create(uri, resourceConfig)
method. There are different implementations of ResourceConfig
. The most basic one is the DefaultResourceConfig
。要注册一个资源实例,你只需做
ResourceConfig config = new DefaultResourceConfig();
config.getRootResourceSingletons().add(users);
HttpServer server = HttpServerFactory.create(uri, config);