簡體   English   中英

JAX-RS 將實例注冊為端點?

[英]JAX-RS register instance as an endpoint?

我有一個類似於此的 rest 端點 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實例,然后將其傳遞給HttpServerFactory.create(uri, resourceConfig)方法。 ResourceConfig有不同的實現。 最基本的是DefaultResourceConfig 要注冊資源實例,您只需執行

ResourceConfig config = new DefaultResourceConfig();
config.getRootResourceSingletons().add(users);
HttpServer server = HttpServerFactory.create(uri, config);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM