在早期post的基础上,我创建了一个如下所示的网络服务:
@RequestMapping(value = "/getFoo", method = RequestMethod.GET, produces = org.springframework.http.MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
@Cacheable(value = "foo")
public ResponseEntity<String> getFoo(
@RequestParam(value = "fooId", defaultValue = "") String fooId )
{
if (fooId.isEmpty() ) {
return new ResponseEntity<String>(HttpStatus.BAD_REQUEST);
}
HugeValue foo = delivery.getHugeValue(fooId);
ObjectMapper mapper = new ObjectMapper();
String json = "";
try {
json = mapper.writeValueAsString(foo);
} catch (JsonProcessingException e) {
return new ResponseEntity<String>(HttpStatus.NOT_FOUND);
}
return new ResponseEntity<String>(json, HttpStatus.OK);
}
mapper.writeValueAsString(foo)
部分有效,但说实话我不喜欢现在的方法;-)
我之所以选择这种方法,是因为JSON不需要在放入缓存后再次生成(这是我的主要目标,因为JSON非常大,我想节省CPU时间)
你知道我的方法的替代方案吗?我不喜欢我当前的方法,因为它不再基于从对象到JSON spring的“自动”编组通常提供的。现在我与杰克森联系在一起,我想让它更通用。我使用spring boot 1.2和spring 4.1