2017-06-13 71 views
2

我有一個250MB的請求體,我需要在Spring 4中使用http PUT。我一直認爲Jackson Streaming API可能是處理這個龐大機構的好方法,我遇到了OOM問題。我只需要爲單個端點啓用此功能。有誰知道如何設置春季4,@RestController?我見過提到WebMvcConfigurerAdapterHttpMessageConverters,但我似乎無法找到如何將Spring MVC與Jackson Streaming API集成的示例。如何使用Spring 4配置Jackson Streaming API MVC

Thx!
-David

回答

2

你可以從請求中獲得一個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) { 
     } 
    } 
} 
+0

真棒,感謝您的回覆!我今天會試試這個 –

相關問題