스프링 프레임워크 3.0의 새로운 기능 및 향상된 기능
Info | ||
---|---|---|
| ||
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. 새로운 모듈 구조와 빌드 시스템
Anchor | ||||
---|---|---|---|---|
|
프레임워크 모듈을 수정하여, 모듈 jar별로 하나의 소스트리로 분리해서 관리함.
...
Gister macro | ||
---|---|---|
|
Anchor | ||||
---|---|---|---|---|
|
자바 기반 빈 메타데이터
JavaConfig 프로젝트로부터 일부 핵심기능이 스프링 프레임워크에 추가됨. 아래 애노테이션을 직접 지원함.
...
- @Bean 애노테이션을 사용하는 메서드는 스프링 컴포넌트 안에서도 사용할 수 있음.
- 이 메서드들은 컨테이너에 팩토리 빈을 정의하는 데 기여함.
3.4. 범용적인 타입 컨버전(형
...
변환) 시스템 및 필드 포맷 시스템
- 범용적인 타입 컨버전(형 변환) 시스템을 도입함.
- 타입 컨버전을 위해 SpEL로 타입 컨버전 시스템을 사용함.
- 빈 프로퍼티 값에 바인딩을 할 때 스프링 컨테이너와 DataBinder로 타입 컨버전 시스템을 사용할 수 있음.
- 필드값을 포맷팅하기 위해 포맷터 SPI를 도입함.
- 포맷터 SPI는 스프링 MVC와 같은 클라이언트 환경에서 사용하기 위해 JavaBean PropertyEditor를 더욱 간단하고 강력한 대안을 통해 제공함.
3.5. 데이터 계층
- 스프링 웹 서비스 프로젝트의 객체와 XML을 매핑하는 기능(OXM)은 스프링 프레임워크의 코어로 이동함.
- 이 기능은 org.springframework.oxm 패키지에서 찾을 수 있음.
3.6. 웹 계층
- RESTful 웹 서비스와 웹 애플리케이션 구축 지원
- 웹 애플리케이션에서 사용할 수 있는 새로운 애노테이션 추가
포괄적인 REST 지원
- 기존의 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를 포함한 임베디드 자바 데이터베이스 엔진을 편리하게 지원함.