...
@RequestMapping 메서드는 아래 중 하나를 리턴할 수 있음.
- java.util.concurrent.Callable는 스프링 MVC 내에서 task executor에 의해 관리되는 별도의 스레드에서 처리를 완료함.
- org.springframework.web.context.request.async.DeferredResult는 스프링 MVC에 알려지지 않은 스레드(예. 일부 외부 이벤트에 대한 응답 - JMS, AMQP 등)를 나중에 처리를 완료함.
- org.springframework.web.context.request.async.AsyncTask는 Callable을 래핑(wrap)하고, 타임아웃 값이나 task executor 사용여부를 커스터마이즈 함.
...
섹션 11.3.6, “스프링 MVC 테스트 프레임워크” 참고.
3. 콘텐츠 네비게이션 개선
ContentNegotiationStrategy는 이제 들어오는 요청으로부터 요청 미디어 타입 문제를 해결하기 위해 사용할 수 있음. 사용 가능한 구현체는 파일확장자, 쿼리 파라미터, 'Accept' 헤더 또는 고정된 content type에 기반을 두고 있음. 이전에는 ContentNegotiatingViewResolver에서만 사용할 수 있었지만 지금은 전반에 걸쳐 사용할 수 있음.
ContentNegotiationManager는 콘텐츠 네비게이션 옵션을 설정할 때 사용하는 중심이 되는 클래스임.
4. @ControllerAdvice 애노테이션
...