Kilka dni temu (19 listopada) kolejna wersja Spring Boot-a ujrzała światło dzienne. Tym razem jest to wersja 2.6, która co prawda
nie wprowadza nic rewolucyjnego, ale jednak kilka ciekawych nowości można w niej znaleźć.
Zresztą ciężko mówić o rewolucji, skoro to jedynie kolejna z "drugich" wersji.
Na coś większego przyjdzie nam poczekać zapewne do Spring Boot-a 3, którego premiera spodziewana jest w
czwartym kwartale przyszłego roku.
Obecnie mamy jednak wersję 2.6, a więc skupmy się na tym, co jest teraz i zobaczmy, co nowego pojawia się
w ramach tej aktualizacji.
Spring Boot 2.6 - Listopad 2021
-
Nowa wersja Spring Security
Razem ze Spring Boot 2.6 dostarczone zostało Spring Security 5.6.
- Nowa wersja Spring Data
Spring Data zostało zaktualizowane do wersji Spring Data 2021.1
- Nowe wersje poniższych rozwiązań
- Spring HATEOAS 1.4
- Spring AMPQ 2.4
- Spring Kafka 2.8
- Spring Session 2021.1
-
Wsparcie dla atrybutu SameSite
Atrybut SameSite może być używany przez przeglądarki internetowe do kontrolowania,
czy i w jaki sposób pliki cookie są przesyłane w żądaniach http.
Atrybut jest szczególnie istotny w przypadku nowoczesnych przeglądarek internetowych,
które zaczęły zmieniać domyślną wartość używaną w przypadku braku atrybutu.
Od teraz można skonfigurować atrybut SameSite ciasteczka sesyjnego
za pomocą właściwości server.servlet.session
.cookie.same-site.
Działa to z automatycznie konfigurowanymi serwerami Tomcat, Jetty i Undertow.
Na przykład, jeśli chcesz, aby cookie sesji miał atrybut SameSite równy None,
możesz dodać następujący wpis do pliku application.properties lub application.yaml:
Jeśli chcesz zmienić atrybut SameSite w innych cookies dodanych do HttpServletResponse,
możesz użyć CookieSameSiteSupplier.
Dodanie następującego beana spowoduje automatyczne zastosowanie SameSite
dla wszystkich plików cookie o nazwie zgodnej z wyrażeniem regularnym myapp.*:
- Java Runtime Information w endpoincie /info
W endpoincie info (widocznym np. z poziomu actuatora) są od teraz udostępniane informacje o Javie (klucz Java):
Działa to dopiero po ustawieniu własności management.info.java.enabled na true.
- Właściwości sesji reaktywnych serwerów (reactive servers)
W tym wydaniu rozszerzono właściwości sesji serwerów reaktywnych
(wcześniej pod spring.webflux.session).
Nowe właściwości są dostępne w server.reactive.session i oferują teraz zgodność z wersjami serwletów.
- Wykluczenia build-info.properties
Od teraz możliwe jest wykluczenie dodawania określonych właściwości do pliku build-info.properties
generowanego przez wtyczki Spring Boot Maven lub Gradle.
Użytkownicy Maven mogą wykluczyć standardowe właściwości grupy, artefaktu,
nazwy, wersji lub czasu za pomocą tagu <excludeInfoProperties>.
Na przykład, aby wykluczyć właściwość version, można użyć następującej konfiguracji:
Użytkownicy Gradle'a mogą użyć null-a w bloku properties w DSL-u:
- Nowe metryki w ramach autokonfiguracji
Automatyczna konfiguracja udostępnia dwie metryki związane z uruchamianiem aplikacji:
- application.started.time, czyli czas potrzebny na uruchomienie aplikacji
- application.ready.time, czyli czas potrzebny na przygotowanie aplikacji do obsługi zgłoszeń
Także metryki DiskSpaceMetrics są autokonfigurowane.
Dla partycji identyfikowanej przez bieżący katalog roboczy dostępne są metryki disk.free
i disk.total.
Jak widać, nowa wersja Spring Boot-a nie zawiera zmian, które znacząco wpływają na implementacje kodu. Na pewno
warto zwrócić uwagę na aktualizacje Spring Security i Spring Data, a konkretnie,
czy ich wprowadzenie nie spowoduje problemów podczas kompilacji lub uruchamiania działającego dotychczas projektu.
Ciekawym zagadnieniem wydaje się również możliwość kontroli atrybutu
SameSite oraz wprowadzenie nowych metryk.
Oczywiście zmian jest nieco więcej i choć w moim odczuciu są one niszowe lub bardzo specjalistyczne to — jak zawsze — zachęcam
do odwiedzenia linków (pod artykułem), które zawierają pełną listę zmian.
Autor: Jarek Klimas
Data: 26 listopada 2021
Labele:Backend, Poziom podstawowy, Spring, Spring Boot
Linki:
https://spring.io/blog/2021/11/19/spring-boot-2-6-is-now-available
https://github.com/.../Spring-Boot-2.6-Release-Notes#new-and-noteworthy
Masz pytanie odnośnie zagadnienia omawianego w artykule?
Coś, co napisaliśmy, nie zaspokoiło Twojego głodu wiedzy?
Daj nam znać co myślisz i skomentuj artykuł na facebooku!