Spring Framework, zapoczątkowany przez Roda Johnsona, ma bogatą historię rozwoju. Jego pierwsza wersja 0.9 ukazała
się w 2003 roku, a już w marcu 2004 roku wydano wersję 1.0. Od tego czasu, Spring przeszedł przez sześć głównych
wersji, z których każda wniosła znaczące zmiany i innowacje. Ostatnia z nich, 6.0, została wydana 22 listopada 2022
roku. Każda aktualizacja Spring Framework wnosiła zaawansowane funkcje i udoskonalenia, utrzymując jego pozycję jako
jednego z kluczowych frameworków w środowisku Java.
Natomiast Spring Boot został wprowadzony w kwietniu 2014 roku. Spring Boot oferuje
automatyczną konfigurację, wbudowane serwery aplikacji, jak Tomcat, oraz uproszczone zarządzanie zależnościami za
pomocą "starterów" Maven i Gradle. Najnowsza wersja Spring Boot, 3.2.0, została wydana 23 listopada 2023 roku.
Spring - Lista wersji
- 0.9 - rok 2002
- 1.0 - rok 2003
Spring staje się kompletnym frameworkiem Java/J2EE.
Posiada zdolność do stosowania deklaratywnych transakcji do dowolnych obiektów POJO.
Wprowadza HibernateTemplate upraszczający implementacje systemów opartych o Hibernate'a.
- 2.0 - rok 2006
W tym releasie wprowadzony zostaje AspectJ umożliwiający wykonywanie operacji w różnych punktach systemu.
Wprowadzone zostają uproszczenia i udogodnienia mianowane biznesowo określeniami: Simple, Powerful, and Proven.
Uproszczenia dotyczą na przykład możliwości pisania parametryzowanych zapytań JDBC w postaci jednej linii kodu.
Zastosowane zostaje podejście "konwencja ponad konfiguracją".
Spring pozbywa się tutaj także lokatorów usług oraz delegatów.
Wprowadza również zaawansowane opcje dotyczące wielowątkowości.
- 2.5 - rok 2007
Spring dostarcza pełne wsparcie dla Javy 6 oraz Javy EE 5 (JDBC 4.0, JTA 1.1, JavaMail 1.4, JAX-WS 2.0)
Udostępnione zostaje pełne wsparcie adnotacji dla wstrzykiwania zależności, łącznie z wdrożeniem kwalifikatorów (qualifiers).
Dostarczona zostaje obsługa automatycznego wykrywania komponentów w ścieżce klas oraz automatyczna konfiguracja obiektowa.
- 3.0 - rok 2009
Wprowadzony zostaje SpEL (Spring expression language).
Umożliwienie wstrzykiwania konfiguracji za pomocą adnotacji @Value.
Wszechstronne wsparcie dla REST, w tym np. wybieranie wartości na podstawie adnotacji @PathVariable.
Spring w pełni obsługuje adnotacje @Async oraz @Scheduled.
- 4.0 - rok 2013
Spring dostarcza pełne wsparcie dla Java 8.
Pojawia się nowa adnotacja @RestController, co np. zwalnia z potrzeby stosowania @ResponseBody w każdym mapowaniu.
Udostępnione zostaje pełne wsparcie dla stref czasowych.
- 4.3 - rok 2016
Usunięto potrzebę stosowania adnotacji @Autowired w przypadku gdy klasa posiada tylko jeden konstruktor.
Klasy oznaczone adnotacją @Configuration wspierają od teraz wstrzykiwanie przez konstruktor.
Pojawiają się nowe adnotacje złożone tj.: @GetMapping, @PostMapping, @PutMapping...
Adnotacja @PathVariable może być zadeklarowana jako opcjonalna (w użyciu z Javą 1.8, np. @PathVariable Optional<String>).
- 5.0 - rok 2017
Cały kod Springa od teraz zbudowany jest na bazie Javy 8.
W developmencie i użyciu pojawia się pełna kompatybilność z JDK 9.
Wprowadzony zostaje nowy moduł spring-webflux (reaktywny) jako alternatywa dla spring-webmvc.
Pojawia się pełne wsparcie dla JUnit 5.
Spring dostarcza również wsparcie dla języka Kotlin (JetBrains).
- 5.1 - rok 2018
Pojawia się wsparcie dla JDK 11 wolne od warningów na ścieżce klas oraz modułów.
Poprawione zostało logowanie za pomocą DEBUG i TRACE.
Zoptymalizowano czas startu, a także zmniejszona została konsumpcja pamięci.
- 5.3 - rok 2020
Spring 5.3, będąca finałowym wydaniem funkcji w 5-tej generacji frameworku Spring, została
zaprojektowana z myślą o podsumowaniu tematów tej generacji, takich jak programowanie
reaktywne i wsparcie dla Kotlin, a także podniesieniu kompatybilności z GraalVM na wyższy
poziom. Ponadto, przygotowywała ona grunt pod JDK 15 i 16,
a także przyszłego JDK 17 LTS (Long-Term Support).
- 6.0 - 2022/11
Spring 6.0 wymaga co najmniej Java 17 i jest zorientowany na Jakarta EE
zamiast Java EE, co oznacza zmianę przestrzeni nazw z javax na jakarta.
Wprowadza także koncepcję AOT (Ahead-Of-Time) dla przetwarzania definicji beanów w czasie kompilacji,
co przyczynia się do szybszego startu aplikacji. Dodatkowo, Spring 6.0 poprawia wsparcie dla
natywnych obrazów GraalVM.
- 6.1 - 2023/11
Wersja Spring Framework 6.1, wydana w czerwcu 2023 roku, wprowadza kilka kluczowych ulepszeń i
nowych funkcji. Została zaprojektowana, aby w pełni wykorzystywać możliwości JDK 21 oraz Jakarta
EE 10, jednocześnie zachowując kompatybilność z JDK 17 i Jakarta EE 9. Wśród nowości znalazło
się między innymi wsparcie dla Virtual Threads z Projektu Loom, umożliwiające lepsze zarządzanie wątkami.
Spring Boot
- 2.0 - 2018/03
Wsparcie dla Javy 9 (to raczej spodziewane skoro Spring Boot 2 bazuje na Springu w wersji 5).
Wsparcie dla Kotlina (reaktywne programowanie).
Nowa wersja aktuatora ze wsparciem dla Spring MVC, WebFlux i Jersey.
Znacząco uproszczona autokonfiguracja security (naprawdę duża sprawa).
- 3.0 - 2022/11
Spring Boot 3 jest oparty na Spring Framework 6, wymaga co najmniej Java 17 i używa API Jakarta EE 9
zamiast EE 8. Jest to istotna aktualizacja, ponieważ wprowadza nowe funkcje i zmiany do
środowiska programistycznego Spring.
Spring Boot 3 rozszerza możliwości monitorowania i śledzenia aplikacji oraz
zapewnia wsparcie dla generowania natywnych obrazów z GraalVM.
Autor: Jarek Klimas
Data: 03 stycznia 2024
Labele: Backend, Podstawowy, Java
Czy informacje, które otrzymałeś, były pomocne?
Jeśli tak, zapraszam Cię do podarowania mi kawy.
Topowe Materiały
Spring IO: Spring Framework 6.0 goes GA
Spring IO: Spring Boot 3.0 Goes GA
Spring IO: Spring Framework 5.0 goes GA
Spring IO: Spring Boot 2.0 Goes GA
Baeldung: Spring Boot 3 and Spring Framework 6.0 – What’s New
Baeldung: Spring 5
Baeldung: What’s New in Spring Boot 2?
Udemy: [NEW] Spring Boot 3, Spring 6 & Hibernate for Beginners — polskie napisy