Spring / Spring Boot version별 특징

지노·2021년 9월 6일
2

작성중...

Spring 3.0

Spring 3.0부터 Java5가 지원된다.

The entire framework code has been revised to take advantage of Java 5 features like generics, varargs and other language improvements. We have done our best to still keep the code backwards compatible. We now have consistent use of generic Collections and Maps, consistent use of generic FactoryBeans, and also consistent resolution of bridge methods in the Spring AOP API. Generic ApplicationListeners automatically receive specific event types only. All callback interfaces such as TransactionCallback and HibernateCallback declare a generic result value now. Overall, the Spring core codebase is now freshly revised and optimized for Java 5.

Spring's TaskExecutor abstraction has been updated for close integration with Java 5's java.util.concurrent facilities. We provide first-class support for Callables and Futures now, as well as ExecutorService adapters, ThreadFactory integration, etc. This has been aligned with JSR-236 (Concurrency Utilities for Java EE 6) as far as possible. Furthermore, we provide support for asynchronous method invocations through the use of the new @Async annotation (or EJB 3.1's @Asynchronous annotation).

  • Java 5의 특징인 Generic이나 가변인자(varargs) 등과 같은 개선사항이 추가된다.
  • 이전 Java Version에 대한 하위호환성이 유지

Overview of new features

  • The framework modules have been revised and are now managed separately with one source-tree per module jar
  • Spring Expression Language
  • IoC enhancements/Java based bean metadata
  • General-purpose type conversion system and field formatting system
  • Object to XML mapping functionality (OXM) moved from Spring Web Services project
  • Comprehensive REST support
  • @MVC additions
  • Declarative model validation
  • Early support for Java EE 6
  • Embedded database support
  • 전체 프레임워크를 하나의 spring.jar 파일로 제공하던 부분을 여러개의 jar 파일로 나누어 제공한다.
  • SPEL(Spring Expression Language)가 도입되었다.
  • Rest API 에 대한 지원이 추가되었다.
  • Declarative model validation
  • OXM(Object Xml Mapping) 기능이 추가되어 설정을 Xml 형태로 할 수 있게 지원한다.
  • Java annotation 을 이용해서 DI 의 지원이 가능하다.

Spring 4.0

  • Spring 4.0은 Java 8의 특징들을 적용할 수 있게 지원한다.

a) Starter Pack 이 생겨서 초보 개발자들에게 큰 진입장벽인 POM 설정을 도와준다.
b) 기존에 사용하지 않지만 호환성을 위해 남겨져있던 Deprecated Package 들이 제거되었으며 Hibernate 3.6 이상, EhCache 2.1 이상, Groovy 1.8 이상, Joda-Time 2.0 이상 등 새로운 Dependency 들에 대해 지원한다.
c) Java6, Java7, Java8 의 고유 기능들에 대해 지원한다. 람다식, Optional, Callback Interface 등의 기능을 Spring framework 레벨에서 사용할 수 있다.
d) Java EE 6, 7 에 대해 고려되어 있다. JPA 2.0 과 Servlet 3.0 에 대한 지원이 포함되어 있다는 뜻이다.
e) Groovy 를 이용한 Bean 설정이 가능하다. 자세한 사용법은 GroovyBeanDefinitionReader 문서를 참조하자.
f) Core 컨테이너들의 기능 지원이 확대되있다. 먼저 Repository 들이 좀 더 쉽게 Inject 될 수 있으며, 각종 Metadata Annotation 들을 이용한 Custom Annotation 작성이 가능하다. @Lazy 를 이용한 Lazy Injection 이나 @Order 을 통한 Ordered Interface, @Profile 을 통한 프로필 버전 관리가 쉬워졌다.
g) Web 을 개발하기 위한 도구들이 생겼다. @RestController 같은 것들이 그것이다.
h) Web Socket 이나 STOMP 등의 프로토콜을 같이 지원한다.
i) 테스트 환경이 개선되었다. Framework 레벨에서 Mock을 위한 ServletContext 를 별도로 지원한다.

Spring 5.0

  • Spring 5.0은 JDK 8+, 9 등에 대해서 지원하며 Java8을 표준으로 사용한다.

a) 코어 로직에 있어서 JDK 8의 특징들이 강화되었다.
b) HTTP 메시지 코덱의 XML과 JSON 지원에 대한 구현이 Encoder 와 Decoder의 사용을 통해 추상화 되었다.
c) 웹에 대한 지원이 향상되었다. 특히 Protobuf 3.0 지원이 적용되었다.

Spring 5.1

Spring 5.2

Spring 5.3

Spring Boot

Spring Boot 1.1 (Release 2014.05)

  • Java 1.6 이상
  • Spring Framework 4.0.5
  • Tomcat 7.0.54, Hibernate 4.3.1

Spring Boot 1.5 (Release 2017.01)

  • Java 8 이상
  • Spring Framework 4.3
  • Tomcat 8.5, Hibernate 5.0
  • ConfigurationProperties 에 JSR303 지원

Spring Boot 2.0.0 (Release 2018.03)

  • Java 8, Java 9 tested
  • Spring Framework 5.0
  • Tomcat 8.5, Hibernate 5.2

Spring Boot 2.1.0(Release 2018.10)

  • Java 11 Support (Java 8 ~ 11)
  • Spring Framework 5.1
  • Tomcat 9, Hibernate 5.3

Spring Boot 2.2.0(Release 2018.10)

  • Java 13 support(Java 8 ~ 13)
  • Spring Framework 5.2
  • Tomcat 9, Hibernate 5.4

  • Performance improvements
  • Lazy initialization
  • Immutable @ConfigurationProperties binding

Spring Boot 2.3.0(Release 2018.10)

  • Java 15 support(Java 8 ~ 15)
  • Spring Framework 5.2
  • Tomcat 9, Hibernate 5.4

  • Docker support
  • Graceful shutdown
    Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. When a grace period is configured, upon shutdown, the web server will no longer permit new requests and will wait for up to the grace period for active requests to complete.

Spring Boot 2.5.0(Release 2018.10)

  • Java 16 support(Java 8 ~ 16)
  • Spring Framework 5.2
  • Tomcat 9, Hibernate 5.4
  • Gradle 7.0

  • Enhanced Docker image building
  • New mechanism for Datasource initialization
  • Additionally, the HTML documentation published by the project has an updated look-and-feel and some new features. There is also support for dark mode!

출처

profile
Spring Framework를 이용한 웹 개발과 AWS 서비스, Container를 사용한 CI/CD 인프라에 관심이 있습니다.

0개의 댓글