Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

스프링 프레임워크 3.2의 새로운 기능 및 향상된 기능

...

  • 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 사용여부를 커스터마이즈 함.

2. 스프링 MVC 테스트 프레임워크

  • 스프링 MVC 애플리케이션을 테스트하기 위해 서블릿 컨테이너 없이 fluent API를 테스트할 수 있도록 지원함.
  • (TBD...) Server-side tests involve use of the DispatcherServlet while client-side REST tests rely on the RestTemplate.
  • 섹션 11.3.6, “스프링 MVC 테스트 프레임워크” 참고.

3. 콘텐츠 네비게이션 개선

ContentNegotiationStrategy는 이제 들어오는 요청으로부터 요청 미디어 타입 문제를 해결하기 위해 사용할 수 있음. 사용 가능한 구현체는 파일확장자, 쿼리 파라미터, 'Accept' 헤더 또는 고정된 content type에 기반을 두고 있음. 이전에는 ContentNegotiatingViewResolver에서만 사용할 수 있었지만 지금은 전반에 걸쳐 사용할 수 있음.

...

4. @ControllerAdvice 애노테이션

  • (TBD...) Classes annotated with @ControllerAdvice can contain @ExceptionHandler, @InitBinder, and @ModelAttribute methods and those will apply to @RequestMapping methods across controller hierarchies as opposed to the controller hierarchy within which they are declared.
  • @ControllerAdvice 애노테이션이 붙은 클래스는 @ExceptionHandler, @InitBinder, 그리고  @ModelAttribute 메서드를 포함할 수 있음. 
  • @ControllerAdvice는 클래스패스 탐색(scanning)을 통해 자동으로 구현 클래스를 감지(detected)할 수 있는 컴포넌트 애노테이션임.

5. Matrix 변수 (Matrix URIs 참고)

...

6. 코드 기반의 서블릿 3+ 컨테이너 초기화를 위한 추상 기본 클래스

  • WebApplicationInitializer 인터페이스의 추상 기본 클래스 구현은 DispatcherServlet 등록 및 필터 매핑을 코드 기반으로 간단하게 하기 위해 제공됨.
  • 자바 기반의 스프링 설정에 사용할 수 있는 새로운 클래스는 AbstractDispatcherServletInitializer 및 하위 클래스인 AbstractAnnotationConfigDispatcherServletInitializer 임.
  • 섹션 17.14, “코드 기반의 서블릿 컨테이너 초기화 참고.

7. ResponseEntityExceptionHandler 클래스

  • 표준 스프링 MVC 예외를 처리하기 위해 @ExceptionHandler 메서드와 함께 사용하는 편리한 기본 클래스임. 
  • 커스터마이징을 허용하고, HTTP 메시지 컨버터와 함께 응답(response)을 작성하는 ResponseEntity를 리턴함. 
  • 이 클래스는 ModelAndView를 리턴하고 동일 작업을 수행하는 DefaultHandlerExceptionResolver의 대안임.
  • 기본 서블릿 컨테이너 오류 페이지를 커스터마이징하는 정보를 담고 있는 섹션 17.11, “Handling exceptions” 참고

8. RestTemplate 및 @RequestBody 인자(arguments)에서의 제너릭 타입 지원

  • RestTemplate은 제너릭 타입의 HTTP 응답(response)를 읽을 수 있음. (예. List<Account>)
  • 캡쳐 및 제너릭 타입 정보를 전달할 수 있는 ParameterizedTypeReference<T> 클래스를 파라미터로 받을 수 있는 3개의 새로운 exchange() 메서드가 추가됨.

...

  •  

9. Jackson JSON 2와 관련 기능 개선

...