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
지원이 적용되었다.