category
언어/Spring
2019. 12. 24. 09:50
by 하루의 모험
Spring 버전별 차이
3.0(Java5지원)
- 전체 프레임워크를 하나의
spring.jar 파일로 제공하던 부분을 여러개의 jar 파일로 나누어 제공
SPEL(Spring Expression Language)가 도입되었다.
Rest API에 대한 지원이 추가되었다.
OXM(Object Xml Mapping)기능이 추가되어 설정을 Xml 형태로 할 수 있게 지원
Java annotation을 이용해서 DI의 지원이 가능하다.
- 4.0(Java8지원)
Starter Pack이 생겨서 초보 개발자들에게 큰 진입장벽인 POM 설정을 도와준다.
- 기존에 사용하지 않지만 호환성을 위해 남겨져있던
Deprecated Package 들이 제거되었으며 Hibenate 3.6 이상, Ehchache 2.1 이상, Groovy 1.8이상, Joda-Time 2.0 이상 등 새로운 Dependency 들에 대해 지원한다.
Java6, Java7, Java8의 고유 기능들에 대해 지원한다. 람다식, Optional, Callback Interface 등의 기능을 Spring Framework 레벨에서 사용할 수 있다.
Java EE 6, 7에 대해 고려되어 있다. JPA 2.0과 Servlet 3.0에 대한 지원이 포함되어 있다는 뜻이다.
Groovy를 이용한 Bean 설정이 가능하다. 자세한 사용법은 GroovyBeanDefinitionReader 문서를 참조하다.
- Core 컨테이너들의 기능 지원이 확대되어있다. 먼저 Repository 들이 좀 더 쉽게 Inject될 수 있으며, 각종
Metadata Annotation들을 이용한 Custom Annotation 작성이 가능하다. @Lazy를 이용한 Lazy Injection이나 @Order을 통한 Ordered Interface, @Profile을 통한 프로필 버전 관리가 쉬워졌다.
- Web을 개발하기 위한 도구들이 생겼다.
@RestController 같은 것들이 그것이다.
Web Socket이나 STOMP 등의 프로토콜을 같이 지원한다.
- 테스트 환경이 개선되었다. Framework 레벨에서
Mock을 위한 ServletContext를 별도로 지원한다.
- 5.0(JDK 8+, 9 지원, Java8을 표준으로 사용)
- 코어로직에 있어서
JDK8의 특징들이 강화되었다.
- HTTP 메시지 코덱의
XML과 JSON 지원에 대한 구현이 Encoder와 Decoder의 사용을 통해 추상화되었다.
- 웹에 대한 지원이 향상되었다. 특히
Protobuf 3.0 지원이 적용되었다.