스프링 프레임워크 3.0의 새로운 기능 및 향상된 기능
Tip |
---|
|
스프링 프레임워크는 Java 5 기반이고, Java 6를 완전하게 지원함. 스프링은 J2EE 1.4와 Java EE 5와 호환되며, Java EE 6를 일찍부터 지원함. |
...
- 제너릭(generic)이나 가변인자(varargs), 그 외 언어적 개선사항 같은 Java 5 기능의 이점을 취하도록 전체 프레임워크 코드를 수정함.
- 제너릭 컬렉션과 맵의 일관된 사용, 제너릭 팩토리빈(FactoryBean)의 일관된 사용, 스프링 AOP API에서 브릿지 메서드의 일관된 해결책을 제공함.
- 제너릭 애플리케이션리스너(Generic ApplicationListener)는 자동으로 특정이벤트의 타입만 받음.
- TransactionCallback과 HibernateCallback같은 모든 콜백 인터페이스는 이제 제너릭 결과값을 선언함.
- 전반적으로 스프링 핵심코드를 Java 5를 기반으로 새로 작성되고 최적화함.
- Java 5의 java.util.concurrent와의 닫힌 통합(close integration)을 위해 스프링의 TaskExecutor 추상화를 수정함.
- ExecutorService 어댑터, ThreadFactory 통합 뿐 아니라 이제 Callable과 Future를 지원하는 퍼스트 클래스(first-class)를 제공함.
- 가능한 한 JSR-236(Java EE 6을 위한 동시성 유틸리티)과 맞춤.
- 새로운 @Async 애노테이션(또는 EJB 3.1의 @Asynchronous 애노테이션)으로 비동기 메서드 호출을 지원함.
2. 새로운 모듈 구조와 빌드 시스템
2.1. 새로운 모듈 구조프레임워크 모듈을 수정하여, 모듈 jar별로 하나의 소스트리로 분리해서 관리함.
...
Gister macro |
---|
gistUrl | https://gist.github.com/ChoiYoungMok/9525b1c7b4cb9184868c43951edbc7ae |
---|
|
3.3. 제어의 역전(IoC) 컨테이너자바 기반 빈 메타데이터
JavaConfig 프로젝트로부터 일부 핵심기능이 스프링 프레임워크에 추가됨. 아래 애노테이션을 직접 지원함.
...
- 기존의 MVC 웹 애플리케이션 애노테이션을 확장하여 RESTful 애플리케이션 구축을 위한 서버 사이드 지원을 함.
- JdbcTemplate이나 JmsTemplate과 같은 템플릿 클래스처럼 RestTemplate 클래스를 통해 클라이언트 사이드 지원을 함.
- MarshallingHttpMessageConverter는 앞에서 이야기 하였던 객체와 XML을 매핑하는 기능(OXM)을 사용함.
@MVC 추가
- 스프링 MVC 설정을 크게 간소화할 수 있는 mvc 네임스페이스를 도입함.
- @CookieValue와 @RequestHeaders와 같은 애노테이션을 추가함.
3.7. 선언적인 모델 검증
- JSR 303 지원을 포함한 여러 유효성 검증을 강화함.
- 기본 프로바이더로 Hibernate Validator 사용함.
3.8. Java EE 6를 위한 조기 지원
- 새로운 @Async 애노테이션(또는 EJB 3.1의 @Asynchronous 애노테이션)을 사용하여 비동기 메서드 호출을 지원함.
- JSR 303, JSF 2.0, JPA 2.0 등등
3.9. 임베디드 데이터베이스 지원
- HSQL, H2, Derby를 포함한 임베디드 자바 데이터베이스 엔진을 편리하게 지원함.