스프링 프레임워크 3.0의 새로운 기능 및 향상된 기능
Java SE와 Java EE 지원
스프링 프레임워크는 Java 5 기반이고, Java 6를 완전하게 지원함.
스프링은 J2EE 1.4와 Java EE 5와 호환되며, Java EE 6를 일찍부터 지원함.
1. Java 5
- 제너릭(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. 개선된 문서
3. 새로운 글과 튜토리얼
4. 새로운 모듈 구조와 빌드 시스템
4.1. 새로운 모듈 구조
프레임워크 모듈을 수정하여, 모듈 jar별로 하나의 소스트리로 분리해서 관리함.
org.springframework.aop
org.springframework.beans
org.springframework.context
org.springframework.context.support
org.springframework.expression
org.springframework.instrument
org.springframework.jdbc
org.springframework.jms
org.springframework.orm
org.springframework.oxm
org.springframework.test
org.springframework.transaction
org.springframework.web
org.springframework.web.portlet
org.springframework.web.servlet
org.springframework.web.struts
4.2. 새로운 빌드 시스템
ex) 스프링 웹 플로우(Web Flow) 2.0
- Ivy 기반의 스프링 빌드 시스템
- 일관된 배포 과정
- 일관된 의존성 관리
- 일관된 OSGi manifest 생성
참고
전체 프레임워크를 대부분 포함하고 있는 spring.jar artifact는 더 이상 제공하지 않음.
5. 새로운 기능
5.1. Java 5를 위한 코어 API 업데이트
5.2. 스프링 표현 언어(SpEL)
5.3. 제어의 역전(IoC) 컨테이너
자바 기반 빈 메타데이터
컴포넌트안에서 빈 메타데이터 정의
5.4. 범용적인 타입 컨버전(형 변화) 시스템 및 필드 포맷 시스템
5.5. 데이터 계층
5.6. 웹 계층
포괄적인 REST 지원
@MVC 추가
5.7. 선언적인 모델 검증
5.8. Java EE 6를 위한 조기 지원
5.9. 임베디드 데이터베이스 지원