Spring 3.2.X

  • Java 5의 기능(제네릭, 가변 매개변수 등)을 사용하여 개정되었다.
    • 이로 인해서 BeanFactory 등 핵심 API가 업데이트 되었다.
  • @Async 주석을 통해 비동기 메서드 호출을 지원하기 시작했다. 
  • 하나의 Spring.jar로 제공하던 것을 여러 Spring 모듈의 jar 파일로 나누어 제공하기 시작했다.
    (ex : spring-core, spring-web 등)
  • SPEL(Spring Expression Language) 가 도입되어 XML및 Annotation 기반 Bean정의에서 사용할 수 있게 되었다.
    • 이로 인해서 외부 프로퍼티 파일이나 환경변수에서 값을 가져오기 쉬워졌다.
  • Java 클래스로부터 @Configuration, @Bean 등의 Annotation을 사용해서 직접 메타 데이터를 설정하고, DI 지원을 받을 수 있다.
  • OXM(Object Xml Mapping)을 사용하여 Bean을 XML형태로 관리할 수 있게 되었다.
  • Rest API 에 대한 지원이 추가되었다.
    • 서버로서는 기존 MVC Framework 레벨에서 Annotation 기반 확장이 추가되었다.
    • 클라이언트로서는 RestTemplate 을 추가해 지원한다.
  • H2등의 Embeded Database를 지원한다.
  • 2016년 12월 31일부로 개발 및 지원이 종료되었다.

Spring 4.3.X

  • Java 8 기능을 완전히 지원하기 시작하였다.
    • Java 6, Java 7 의 고유 기능들에 대해서도 각각 지원한다.
  • Starter Pack의 등장으로 초기 설정이 보다 용이해졌다.
  • Groovy 를 통한 Bean 설정이 가능하다.
  • Core Container 들의 기능 지원이 확대되었다.
    • 예를 들어, Spring Data Repository 를 사용하고 있다면 간단한 구현으로 주입할 수 있다. (@Autowired Repository<Customer> customerRepository)
    • meta-annotation 지원과 함께 custom-annotation 을 만들 수 있다.
    • Bean 관리가 더 용이해졌다.
      • @Order 어노테이션을 통해 배열과 리스트 형태의 Bean을 정렬 할 수 있다.
      • @Lazy 어노테이션을 통해 Lazy Injection이 가능하다.
  • @RestController 등 Web 개발 도구의 지원이 강화되었다.
  • WebSocket이나 STOMP 등의 프로토콜을 지원하여 양방향 통신이 가능하다.
  • 테스트 환경이 개선되어 Framework 레벨에서 테스트 유틸리티를 지원한다.
    (ex. AopTestUtils, ReflectionTestUtils(개선))
  • 2020년 12월 31일부로 개발 및 지원이 종료될 예정이다.

Spring 5.X

  • 전체 프레임워크가 Java 8 을 기반 소스코드로 삼으며, 제네릭과 람다 등을 통해 가독성이 향상 되었다.
  • JDK 9와도 완벽 호환된다.
  • Jackson 2.9, Protobuf 3, Reactor 3.1과의 호환 추가
  • Spring WebFlux 추가, 비동기와 넌-블로킹 이벤트 루프 모델 사용 가능
  • Kotlin 지원
  • Junit 5 지원
  • 5.0.x 버전은 2020년 10월까지 지원되며, 5.1.x 버전과 5.2.x 버전은 각각 2020년 10월, 2021년 말까지 활발히 개발될 것이다. 5.3.x 버전은 알파버전으로, 2024년까지 지원이 제공된다.

 

'코딩 > 자바' 카테고리의 다른 글

이것이 자바다 generic 정리  (1) 2023.11.26
String 메소드 자바 17 정리  (1) 2023.11.26
자바 버전별 정리  (1) 2023.10.20
자바의 정석 ch9  (0) 2022.11.06
자바 구조적인 프로그래밍  (0) 2022.11.05

+ Recent posts