gpt4 book ai didi

routes - Sparkjava : Do routes have to be in main method?

转载 作者:行者123 更新时间:2023-12-02 06:56:18 31 4
gpt4 key购买 nike

我是 Sparkjava 的新手,总体上喜欢它。但是,是否必须在 main 方法中定义新的路由/端点?对于任何重要的 Web 应用程序,这将导致一个非常长的 main 方法,或者我需要有多个 main 方法(因此将服务器资源分配给多个实例)。

这两个sparkjava文档页面似乎在main方法中定义了路由:http://sparkjava.com/documentation.html#routes在这里 http://sparkjava.com/documentation.html#getting-started .

还有其他我没有看到的方法吗?粗略的谷歌搜索没有给我展示更好的方法......

========

这是我根据安德鲁的回答所做的完整解决方案。在我看来,在主方法之外添加端点应该是sparkjava文档页面的一部分:

主要方法:

public static void main(String[] args) {
//Do I need to do something more with the Resource instance so that sparkjava notices it and/or reads the routes?
Resource resource= new Resource(new Service());
}

我的资源:

import static spark.Spark.*;
class Resource{

private Service service;

Resource(Service service){
this.service = service;
setupEndpoints();
}

private void setupEndpoints() {

get("/user/:id", "application/json",(request, response)
-> service.find(request.params(":id")), new JsonTransformer());

get("/users", "application/json", (request, response)
-> service.findAll(), new JsonTransformer());
}
}

我的服务:

public class Service {

public Object find(String id) {
return null;
}

public Object findAll() {
return null;
}
}

我的 JsonTransformer:

import spark.ResponseTransformer;
public class JsonTransformer implements ResponseTransformer {
@Override
public String render(Object model) throws Exception {
return null;
}
}

最佳答案

您可以设置您想要的路线。您只需要在主线程中调用设置方法即可。例如

 public static void main(String[] args){
Resource resource= new Resource(new Service());
}

class Resource{

private Service service;

Resource(Service service){
this.service = service;
setupEndpoints();
}

private void setupEndpoints() {

get("/user/:id", "application/json",(request, response)
-> service.find(request.params(":id")), new JsonTransformer());

get("/users", "application/json", (request, response)
-> service.findAll(), new JsonTransformer());
}
}

关于routes - Sparkjava : Do routes have to be in main method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34976459/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com