과거 자바 진영 표준 기줄인 EJB (Enterprise Java Beans)는 너무 어렵고 복잡, 기술 수준도 낮음
=> Spring의 등장
Spring 설정이 복잡 => Spring Boot 등장
스프링의 핵심 철학?
스프링의 주요 특징인 제어의 역전(IoC) 컨테이너, Dependency Injection, Spring MVC, JDBC 추상화 등이 소개, XML 기반의 빈 설정
XML 스키마를 통한 설정 지원, AspectJ를 통한 Aspect-Oriented Programming (AOP) 기능 향상, 스프링 웹 플로우와의 통합 등이 추가. 2.5에서 Annotation 기반의 설정 도입
REST 웹 서비스, 표현언어(EL), 표준 검증 지원 등이 추가, @Configuration 애노테이션을 통한 자바 기반 설정이 처음 도입
Java 8 도입, 람다 표현식과 메서드 참조 지원, 실시간 웹 애플리케이션 개발을 위한 WebSocket 및 STOMP 메시징을 지원
스프링 프레임워크의 설정을 단순화하고 빠른 프로토타이핑이 가능, 기본적인 템플릿과 설정을 제공하는 Spring Boot Starter 도입, Tomcat, Jetty, Undertow 등의 내장 서버 지원
비동기 처리를 위한 spring-webflux 모듈(Reactive Programming 모델) 도입, Kotlin 언어에 대한 일급 지원 도입, Junit 5에 대한 지원, 모듈 단위 개선, 코어 컨테이너 개선
스프링 프레임워크 5.0 및 Reactor Core 3.1에 대한 기본 지원, Kotlin 지원 등
Java 17기반으로 변경, RPC 지원 종료, 새로운 AOT 엔진 도입 등
Java 17 기반, native 지원 확대