====== SpringMVC DeferredResult ====== * [[https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/context/request/async/DeferredResult.html|DeferredResult]] * [[springframework:mvc|Spring MVC]] 에서 Non Blocking IO 비동기(async) 처리를 위한 응답방식. * [[springframework:async|Spring @Async]] 와 연동 * Non Blocking IO 와도 연동 * [[reactive_programming:reactor|Project Reactor]] 에서 ''subscribe()''로 ''DeferredResult'' 연동가능. * [[springframework:webflux|Spring WebFlux]] 당장 WebFlux 를 못 사용하는 가능상황에서 사용가능할 것으로 보임. * [[springframework:asyncresttemplate|AsyncRestTemplate]] 사용 Non Blocking IO 처리 ===== 동일한 효과를 내는 Controller 응답 타입 ===== * [[java:8:completable_future|Java 8 CompletableFuture]] 를 사용해도 동일한 효과(''CompletionStage'') * ''Callable'' * ''WebAsyncTask'' * ''ListenableFuture'' * ''ResponseBodyEmitter'' ===== Interceptor ===== * [[https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/AsyncHandlerInterceptor.html|AsyncHandlerInterceptor]] ===== 참고 ===== * [[https://www.baeldung.com/spring-deferred-result|Guide to DeferredResult in Spring]] * [[http://wonwoo.ml/index.php/post/1912|spring web 비동기]] * [[https://shortstories.gitbooks.io/studybook/content/async_controller.html|Spring Async Controller · studybook]] * [[https://www.youtube.com/watch?v=HKlUvCv9hvA&t=12s|스프링캠프 2017 [Day1 A2] : Async & Spring]] Spring MVC 에서 비동기/Non Blocking 에 대한 자세한 설명 * [[https://www.javadevjournal.com/spring-mvc/spring-deferred-result/|DeferredResult in Spring | Java Development Journal]] * [[https://www.javacodegeeks.com/2015/07/understanding-callable-and-spring-deferredresult.html|Understanding Callable and Spring DeferredResult]] * [[https://github.com/spring-projects/spring-mvc-showcase/|spring-projects/spring-mvc-showcase: Demonstrates the features of the Spring MVC web framework]] 에서 ''async'' 패키지 * [[https://powernote.tistory.com/32|[spring] 비동기 처리 정리.]]