Wersje Springa

Spring ma już za sobą bardzo długą i bogatą historię. Pierwsza wersja o numerze 0.9 została stworzona i opisana przez Rod-a Johnsona już w 2002 roku (w październiku). Kilka miesięcy później została wydana przełomowa wersja 1.0. Od tamtego czasu do dziś powstało w sumie ponad 5 głównych wersji. Przedstawiamy podsumowanie ważniejszych zmian:
  • 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.
Na koniec warto jeszcze wspomnieć, że po wypuszczeniu wersji 5.0, niewiele później bo 1 marca 2018 roku wypuszczona została nowa wersja Spring Boot. Nowa wersja to Spring Boot 2 i zawiera miedzy innymi takie zmiany jak:
  • 2.0 - rok 2018
    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).
Nasza rekomendacja
W idealnym świecie zawsze polecalibyśmy używanie najnowszych wersji bibliotek. To oczywista sprawa. Natomiast biorąc pod uwagę trudność w przechodzeniu na nowe wersje frameworka oraz bibliotek w działających produkcyjnie projektach, zalecamy dużą ostrożność. Zresztą to i tak w ogóle może być czasem wręcz niewykonalne (bez dodatkowych konsekwencji) jeśli spojrzymy choćby na listę dokonanych w Springu zmian, np. między wersją 3 a 5.

Reasumując, nie ma wielkiej konieczności aktualizowania wersji Springa w projekcie jeśli występuje on w wersji co najmniej 4, jeśli jednak posiadamy starsze wersje (o zgrozo), to naprawdę warto to rozważyć (chociażby z powodu możliwości używania Javy 8).
Linki
https://spring.io/blog/2004/03/24/spring-framework-1-0-final-released
https://docs.spring.io/spring/docs/4.3.15.RELEASE/spring-framework-reference/html/new-in-4.3.html
https://spring.io/blog/2017/09/28/spring-framework-5-0-goes-ga
https://spring.io/blog/2018/03/01/spring-boot-2-0-goes-ga

Stale się rozwijamy, a więc bądź na bieżąco!
Na ten adres będziemy przesyłać informacje o ważniejszych aktualizacjach, a także o nowych materiałach pojawiających się na stronie.
Polub nas na Facebooku:
Nasi partnerzy:
Javappa to również profesjonalne usługi programistyczne oparte o technologie JAVA. Jeśli chesz nawiązać z nami kontakt w celu uzyskania doradztwa bądź stworzenia aplikacji webowej powinieneś poznać nasze doświadczenia.
Kliknij O nas .