본문으로 바로가기

스프링 버전 차이

category 언어/Spring 2019. 12. 24. 09:50

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.0Servlet 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 메시지 코덱의 XMLJSON 지원에 대한 구현이 EncoderDecoder의 사용을 통해 추상화되었다.
    • 웹에 대한 지원이 향상되었다. 특히 Protobuf 3.0 지원이 적용되었다.