Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

스프링 프레임워크 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. 새로운 모듈 구조와 빌드 시스템

2.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

2.2. 새로운 빌드 시스템

ex) 스프링 웹 플로우(Web Flow) 2.0

  • Ivy 기반의 스프링 빌드 시스템
  • 일관된 배포 과정
  • 일관된 의존성 관리
  • 일관된 OSGi manifest 생성

참고

전체 프레임워크를 대부분 포함하고 있는 spring.jar artifact는 더 이상 제공하지 않음.

3. 새로운 기능

3.1. Java 5를 위한 코어 API 업데이트

BeanFactory 인터페이스는 가능한한 타입이 있는 빈을 리턴함.

  • T getBean(Class<T> requiredType)

  • T getBean(String name, Class<T> requiredType)

  • Map<String, T> getBeansOfType(Class<T> type)

스프링의 TaskExecutor 인터페이스는 java.util.concurrent.Executor를 상속받음.

  • 상속받은 AsyncTaskExecutor는 표준 Callable와 Future를 지원한다.

Java 5 기반의 새로운 변환 API와 SPI

  • 무상태 ConversionService와 Converters
  • 표준 JDK PropertyEditors 대체함.

타입이 있는 ApplicationListener<E>

3.2. 스프링 표현 언어(SpEL)

  • 스프링의 표현 언어는 일반적인 EL과 문법적으로는 유사하지만 훨씬 더 많은 기능을 제공함. 
  • 표현언어는 XML 및 애노테이션 기반의 빈 정의에 사용할 수 있음.
  • 스프링 포트폴리오에서 표현 언어를 지원하기 위한 토대가 됨.
  • 스프링 표현 언어는 스프링 포트폴리오의 모든 제품에서 잘 지원하는 하나의 표현언어를 스프링 커뮤니티에 제공할 목적으로 만들어 짐.
  • 스프링 포트폴리오에 있는 프로젝트의 요구사항을 기반으로 하여 기능이 만들어 짐. (이클립스 기반의 STS 내에서의 코드 자동완성 기능도 포함됨)

3.3. 제어의 역전(IoC) 컨테이너

자바 기반 빈 메타데이터

컴포넌트안에서 빈 메타데이터 정의

3.4. 범용적인 타입 컨버전(형 변화) 시스템 및 필드 포맷 시스템

3.5. 데이터 계층

3.6. 웹 계층

포괄적인 REST 지원

@MVC 추가

3.7. 선언적인 모델 검증

3.8. Java EE 6를 위한 조기 지원

3.9. 임베디드 데이터베이스 지원

 

 

  • No labels