【问题标题】:how to configure the Jackson Streaming API with Spring 4 MVC如何使用 Spring 4 MVC 配置 Jackson Streaming API
【发布时间】:2017-06-13 17:51:37
【问题描述】:

我有大约 250MB 的请求正文,我需要在 Spring 4 中 http PUT。我在想 Jackson Streaming API 可能是处理这个大正文的好方法,因为我遇到了 OOM 问题。我只需要为单个端点启用它。有谁知道如何为 Spring 4 @RestController 进行设置?我见过提到WebMvcConfigurerAdapterHttpMessageConverters,但我似乎找不到如何将Spring MVC 与Jackson Streaming API 集成的示例。

谢谢!
-大卫

【问题讨论】:

    标签: java spring-mvc jackson spring-4


    【解决方案1】:

    您可以从请求中获取InputStream 并使用它来初始化JsonParser。它看起来像这样:

    @RestController
    public class MyController {
    
        private static final JsonFactory jfactory = new JsonFactory();
    
        @PostMapping(path = "/bigfileshere")
        public void enpointForBigFiles(HttpServletRequest request, HttpServletResponse response) {
             InputStream stream = request.getInputStream();
             try (JsonParser parser = jfactory.createParser(stream)) {
                 while (parser.nextToken() != JsonToken.END_OBJECT) {
                     String fieldname = parser.getCurrentName();
                     // do other stuff
                 }
             } catch (IOException e) {
             }
        }
    }
    

    【讨论】:

    • 太棒了,感谢您的回复!我今天试试这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2012-10-17
    • 2015-11-22
    • 1970-01-01
    • 2017-02-24
    • 2016-12-28
    • 1970-01-01
    相关资源
    最近更新 更多