response.body()和回调返回的对象之间的区别是什么?

时间:2016-02-07 17:33:04

标签: spark-java

来自Spark Java documentation

response.body("Hello");        // sets content to Hello

来自Route's JavaDoc

@return The content to be set in the response

那么区别是什么?有人可以向我解释一下吗?

3 个答案:

答案 0 :(得分:7)

但实际差异在于response.body()仅接受String,而在回调中,您可以return任何可以序列化为String的对象,最重要的是流。

response.body()应主要用于异常处理程序和过滤器之后,以及正常路由中的回调return

答案 1 :(得分:1)

正如您所指出的,它们都可用于设置响应体。我认为@return是典型的http端点的一部分。

response.body()对异常处理很有用。

exception(NotFoundException.class, (e, request, response) -> {
    response.status(404);
    response.body("Resource not found");
});

Sparkjava是一个简单的骨架,它意味着建立在它之上。 response.body()使sparkjava在您无法访问“返回”对象的上下文中易于扩展。

答案 2 :(得分:1)

它的作用确实没有区别,但它们都存在,因此在不同的环境中设置响应体很容易。例如,您可以在异常处理程序甚至过滤器中使用response.body,但正如您可能注意到的那样,return方式是更好的"在路线声明中。