스프링 3.0은 Java 5
의 특징을 본격적으로 적용해서 만들어진 최초의 스프링 버전이다.
공식적으로 J2SE 5.0
이상의 환경에서 사용해야 한다.
J2EE 1.4
와 JavaEE 5
와 완벽하게 호환되며 JavaEE 6
의 일부 스펙을 지원한다.
JavaEE 6
에는 표준 DI 스펙(Dependency Injection for Java(JSR-330)
)이 포함되어 있다.
스프링의 공식 표현식 언어를 의미한다.
빈 설정에서부터 스프링 MVC의 뷰에 이르기까지 다양한 영역에 적용된다.
자바 코드를 이용한 빈 메타정보 생성과 DI 설정이 추가됐다.
@Configuration
과 @Bean
등의 애노테이션을 부여해서 DI 설정정보로 이용할 수 있다.
@Inject
와 @Provider
같은 자바 표준 DI 애노테이션을 이용한 DI 설정도 지원한다.
Object-XML Mapping
의 약자다.
오브젝트와 XML의 상호변환을 지원하는 자바 기술에 대한 서비스 추상화 모듈이다.
5가지의 대표적인 라이브러리를 지원한다.
스프링 MVC의 메시지 전송과 뷰 기술에도 적용됐다.
@MVC는 애노테이션을 적극적으로 활용해서 웹 프레젠테이션 계층을 편리하게 개발할 수 있도록 만들어진 스프링의 최신 웹 기술이다.
RestTemplate
과 메시지 컨버터를 이용해 REST 개발을 완벽하게 지원해준다.
Derby
, HSQL
, H2
에 대한 내장형 DB 지원 기능이 추가됐다.
자체 스키마를 가진 내장형 DB 전용 태그를 이용해서 내장형 DB 엔진을 손쉽게 등록하고 사용할 수 있다.
PropertyEditor
를 대체할 수 있는 타입 변환 API가 추가됐다.
멀티스레드 환경에서도 안전하게 공유될 수 있다.
애노테이션과 같은 메타 정보를 변환 작업에 활용할 수 있는 확장성을 가지고 있다.
Formatter
는 웹 환경에 특화되었다.
3.0부터 지원하기 시작한 자바 코드를 이용한 빈 설정 방식을 대폭 확장했다.
XML을 전혀 사용하지 않고 스프링 애플리케이션을 작성할 수 있다.
자바 코드를 이용한 빈 설정을 위해 다양한 애노테이션이 추가됐다.
XML의 전용 커스텀 태그를 대체할 수 있는 @Enable
로 시작하는 전용 애노테이션도 제공된다.
스프링 애플리케이션이 실행되는 런타임 환경 정보를 추상화한 환경 오브젝트가 컨테이너를 통해 제공된다.
프로파일
프로퍼티 소스
JPA를 이용할 때보다 좀 더 쉽게 설정정보를 작성할 수 있다.
DispatcherServlet 전략의 일부가 새롭게 설계된 전략으로 대체됐다.
Post/Redirect/Get
패턴에 사용할 수 있는 플래시 맵 기능이 추가됐다.
AOP를 이용한 메소드 레벨의 캐시 추상화 기능이 추가됐다.
맵을 이용한 간단한 캐시 구현부터 EhCache
를 이용한 고급 캐시 기술까지 지원한다.
출처) 토비의 스프링 3.1