在ResponseEntity<>中传回String或Object更好吗?

时间:2017-06-12 11:04:34

标签: json spring spring-mvc jackson spring-rest

我有一个返回ResponseEntity的控制器。现在我修改了这段代码并使用ObjectMapper添加了一堆过滤器。在此更改后,我返回一个String作为响应。

以下示例代码:

public ResponseEntity<String> search() {
SearchResult searchResults = service.search(criteria);
objectMapper.setFilterProvider(new SimpleFilterProvider()
                .addFilter("firstFilter", new FirstFilter())
                .addFilter("secondFilter",new SecondFilter()));
        return new ResponseEntity<>(objectMapper.writeValueAsString(searchResults), OK);
}

现在我的问题是,这是一个很好的方法。它有任何影响吗?发送实际的Object而不是它的String变体之间有什么区别。任何帮助赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

ResponseEntity<T>表示整个HTTP响应。除了实体本身,它的API允许您为响应设置标题和状态代码。

从长远来看,返回普通String赢得了很大的灵活性。例如,如果需要向响应添加标题,则需要更改方法返回类型。