스프링 3.0 vs 3.1

CHEESE·2021년 10월 19일
0

Spring 3.0

Java 5와 JavaEE 6

스프링 3.0은 Java 5의 특징을 본격적으로 적용해서 만들어진 최초의 스프링 버전이다.
공식적으로 J2SE 5.0 이상의 환경에서 사용해야 한다.
J2EE 1.4JavaEE 5와 완벽하게 호환되며 JavaEE 6의 일부 스펙을 지원한다.
JavaEE 6에는 표준 DI 스펙(Dependency Injection for Java(JSR-330))이 포함되어 있다.

SpEL

스프링의 공식 표현식 언어를 의미한다.
빈 설정에서부터 스프링 MVC의 뷰에 이르기까지 다양한 영역에 적용된다.

자바 코드를 이용한 DI 설정과 DIJ

자바 코드를 이용한 빈 메타정보 생성과 DI 설정이 추가됐다.
@Configuration@Bean 등의 애노테이션을 부여해서 DI 설정정보로 이용할 수 있다.
@Inject@Provider 같은 자바 표준 DI 애노테이션을 이용한 DI 설정도 지원한다.

OXM

Object-XML Mapping의 약자다.
오브젝트와 XML의 상호변환을 지원하는 자바 기술에 대한 서비스 추상화 모듈이다.
5가지의 대표적인 라이브러리를 지원한다.
스프링 MVC의 메시지 전송과 뷰 기술에도 적용됐다.

@MVC와 REST

@MVC는 애노테이션을 적극적으로 활용해서 웹 프레젠테이션 계층을 편리하게 개발할 수 있도록 만들어진 스프링의 최신 웹 기술이다.
RestTemplate과 메시지 컨버터를 이용해 REST 개발을 완벽하게 지원해준다.

내장형 DB 지원

Derby, HSQL, H2에 대한 내장형 DB 지원 기능이 추가됐다.
자체 스키마를 가진 내장형 DB 전용 태그를 이용해서 내장형 DB 엔진을 손쉽게 등록하고 사용할 수 있다.

Converter, ConversionService, Formatter

PropertyEditor를 대체할 수 있는 타입 변환 API가 추가됐다.
멀티스레드 환경에서도 안전하게 공유될 수 있다.
애노테이션과 같은 메타 정보를 변환 작업에 활용할 수 있는 확장성을 가지고 있다.
Formatter는 웹 환경에 특화되었다.

Spring 3.1

강화된 자바 코드를 이용한 빈 설정

3.0부터 지원하기 시작한 자바 코드를 이용한 빈 설정 방식을 대폭 확장했다.
XML을 전혀 사용하지 않고 스프링 애플리케이션을 작성할 수 있다.
자바 코드를 이용한 빈 설정을 위해 다양한 애노테이션이 추가됐다.
XML의 전용 커스텀 태그를 대체할 수 있는 @Enable로 시작하는 전용 애노테이션도 제공된다.

런타임 환경 추상화

스프링 애플리케이션이 실행되는 런타임 환경 정보를 추상화한 환경 오브젝트가 컨테이너를 통해 제공된다.

  • 실행환경에 따라 달라지는 빈 설정을 효과적으로 관리할 수 있는 프로파일
  • 각종 프로퍼티 정보를 컨테이너를 통해 일관된 방식으로 제공할 수 있게 해주는 프로퍼티 소스

JPA 지원 확장과 하이버네이트 4 지원

JPA를 이용할 때보다 좀 더 쉽게 설정정보를 작성할 수 있다.

새로운 DispatcherServlet 전략과 플래시 맵

DispatcherServlet 전략의 일부가 새롭게 설계된 전략으로 대체됐다.
Post/Redirect/Get 패턴에 사용할 수 있는 플래시 맵 기능이 추가됐다.

캐시 추상화

AOP를 이용한 메소드 레벨의 캐시 추상화 기능이 추가됐다.
맵을 이용한 간단한 캐시 구현부터 EhCache를 이용한 고급 캐시 기술까지 지원한다.

출처) 토비의 스프링 3.1

0개의 댓글