Wat is er nieuw in Spring Boot 3?

Wat is er nieuw in Spring Boot 3?

In dit artikel zullen we de opwindende nieuwe functies verkennen die zijn geïntroduceerd in Spring Boot 3, de nieuwste versie van het populaire Java-framework. Spring Boot heeft een revolutie teweeggebracht in de manier waarop ontwikkelaars Java-applicaties bouwen door een gestroomlijnde en eigenzinnige benadering van applicatie-ontwikkeling te bieden. Met elke nieuwe release blijft Spring Boot evolueren en verbeteren, waardoor ontwikkelaars met gemak robuuste en schaalbare applicaties kunnen maken.

Op de hoogte blijven van de nieuwste versies garandeert toegang tot nieuwe functies, verbeteringen en beveiligingsverbeteringen, evenals community-ondersteuning, waardoor ontwikkelaars efficiënt hoogwaardige applicaties kunnen bouwen.

Summary

1. Overview van Spring Boot 3 

Spring Boot is een veelgebruikt framework voor het ontwikkelen van webapplicaties en microservices in Java. Het vereenvoudigt het ontwikkelingsproces door intelligente standaardconfiguraties te bieden en repetitieve taken te elimineren. Spring Boot versnelt de ontwikkeling van applicaties door ingebouwde functies aan te bieden, zoals geïntegreerde applicatieservers, afhankelijkheidsbeheer en kant-en-klare ondersteuning voor veel populaire bibliotheken en technologieën.

Spring Boot 3 is een belangrijke release van het Spring Boot-framework, uitgebracht in november 2022. Het bevat verschillende nieuwe functies, verbeteringen en bugfixes:

2. Verbeteringen

Spring Boot 3 introduceert verschillende prestatieverbeteringen en optimalisaties om de responsiviteit en efficiëntie van applicaties te vergroten.

Deze verbeteringen zijn gericht op het verkorten van de opstarttijden, het minimaliseren van de geheugenvoetafdruk en het optimaliseren van het gebruik van bronnen.

Met een meer gestroomlijnde en lichtgewicht runtime-omgeving zullen applicaties die op Spring Boot 3 zijn gebouwd een verbeterde schaalbaarheid en reactievermogen ervaren, wat resulteert in een betere gebruikerservaring en een hogere klanttevredenheid.

We zullen hieronder een eenvoudige manier noemen om de prestaties van een springboot-applicatie te verbeteren.

3. Systeem vereisten

Spring Boot 3 vereist Java 17 (of hoger) en Spring Framework 6 (of hoger).

Bouw gereedschap

Maven ➜ 3,5+

Gradle ➜ 7.x (7.5 of hoger)

Serveercontainers

Spring Boot ondersteunt de volgende ingebedde servletcontainers:

NaamServlet Versie
Tomcat 10.05.0
Jetty 11.05.1
Undertow 2.2 (Jakarta EE 9 variant)5.0

Je kunt ook springboot-applicaties implementeren in elke servlet 5.0+ compatibele container.

GraalVM native afbeeldingen

Spring Boot-applicaties kunnen worden geconverteerd naar een Native Image met GraalVM 22.3 of hoger.

Afbeeldingen kunnen worden gemaakt met behulp van de native build-tools Gradle/Maven-plug-ins of de native image-tool van GraalVM. U kunt ook native images maken met behulp van het Paketo-buildpakket met native image.

The following versions are supported:

NameVersion
GraalVM Community22.3
Native Build Tools0.9.18

4. Compatibiliteit en migratie

Migreren naar Spring Boot 3 vereist een reeks bijbehorende migraties en afhankelijkheidsupdates die moeten worden uitgevoerd voordat een upgrade naar deze nieuwste versie van Spring Boot wordt uitgevoerd. Deze zijn:

Er zijn gevallen waarin we pakketnamen mogelijk niet hoeven te herstructureren bij het upgraden van onze software, omdat sommige afhankelijkheden, zoals javax.sql.DataSource, al tot JDK 17 behoren, en niet tot Jakarta EE. In deze gevallen is het niet nodig om de pakketnaam te wijzigen, aangezien deze al consistent is met de nieuwste versie van onze app. Het is echter belangrijk op te merken dat het essentieel is om alle afhankelijkheden grondig te beoordelen en te testen om er zeker van te zijn dat ze compatibel zijn met de nieuwe versie van de code.

Ten slotte kan het nodig zijn, afhankelijk van de versie van Spring Boot waaruit uw applicaties worden gemigreerd, om verschillende wijzigingen aan te brengen in zowel de code als de configuratie van de applicatie wanneer u overschakelt naar Spring Boot 3.

5. Nieuwe Tools En Framework Integraties

5.1. Java 17 Baseline en Java 19-ondersteuning

Het belangrijkste nieuws waar we ons zorgen over maken is dat Spring Boot 3 in ieder geval Java 17 ondersteunt.

Als u momenteel met Java 8 of 11 werkt, moet u migreren naar JDK 17 voordat u kunt genieten van de ontwikkeling van Spring Boot 3-applicaties.

Spring Boot 3 werkt ook goed en is getest met JDK 19.

Volgens de Java-gemeenschap en de experten:

Misschien wilt u meer lezen over de nieuwe functies die beschikbaar zijn in JDK 17.

5.2 GraalVM Native Image Support

Met Spring Boot 3 kunt u nu gebruik maken van native GraalVM-imageondersteuning.

Spring Boot 3-applicaties kunnen nu worden geconverteerd naar native GraalVM-images, wat aanzienlijke verbeteringen in het geheugen en de opstartprestaties kan opleveren.

Zeg vaarwel tegen uw JVM en geniet van de grote technische inspanningen die zijn geleverd voor het gehele Spring-portfolio!

Als u aan de slag wilt gaan met native GraalVM-images, gaat u naar de bijgewerkte Spring Boot-referentiedocumentatie.

5.3. Jakarta EE API

Spring Boot 3 is voor bijna alle afhankelijkheden gemigreerd van Java JEE naar Jakarta JEE API’s.

De nieuwe compatibele afhankelijkheden van Jakarta JEE komen via Jakarta JEE 10, waaronder:


Misschien vind je het leuk om erover te lezen het Jakarta JEE 10 core profile.

5.4 Spring Framework 6

Spring Boot 3 bouwt voort op en vereist Spring Framework 6. In deze release zijn er verschillende Spring-geüpgradede modules, zoals:

We moeten vermelden dat Spring Framework 6 nu compatibel is met de JPA-ondersteuning voor Hibernate ORM 6.1.

5.5 Web Flux Verbeteringen

Spring Framework 6 provides us with new enhancement in the WebFlux Spring Module for reactive programming :


Als je meer wilt weten over: the new WebFlux Spring module.

5.6 Micrometer Metrics & Tracing Updates

Zoals we weten, is Micrometer de verzamelgevel voor statistieken en tracering van een springboot-applicatie die Actuator gebruikt.

SpringBoot 3 wordt geleverd met twee belangrijke updates die zijn geïntroduceerd in Micrometer 1.10:

SpringBoot 3 biedt ons dus de ObservationRe

Meer weten over: micrometer metrics and tracing with Actuator Spring Boot 3

5.7 Dependency upgrades

Zoals hierboven besproken, is SpringBoot 3 in ieder geval afhankelijk van de Spring Framework 6-versie, dus andere afhankelijkheden worden als volgt geüpgraded:

5.8 Miscellaneous

Dit zijn ook enkele verbeteringen en afschaffingen in SpringBoot 3.

Verbeteringen:

Verwijderde functies:

6. Security Verbeteringen

In deze sectie bespreken we de beveiligingsgerelateerde updates in Spring Boot 3.

6.1 WebSecurityConfigurerAdapter verwijderd

Toen we in eerdere versies van Spring Security de beveiligingsinstellingen wilden configureren, moesten we de klasse WebSecurityConfigurerAdapter uitbreiden.

Deze klasse is verouderd en verwijderd in Spring Security 6.

In plaats daarvan moeten we nu een meer op componenten gebaseerde aanpak hanteren en een boon van het type SecurityFilterChain maken.

Voorbeeld:

SecurityFilterChain

6.2 authorizeHTTPRequests

In plaats van AuthorizeRequests te gebruiken, wat verouderd is, moeten we nu AuthorizeHttpRequests gebruiken.

Deze methode maakt deel uit van de HttpSecurity-configuratie en stelt u in staat gedetailleerde aanvraagmatching voor toegangscontrole te configureren.

Voorbeeld:

In dit voorbeeld staan we toegang toe tot het “/api/auth”-verzoek, terwijl authenticatie voor alle andere verzoeken vereist is.

6.3 requestMatchers replacing antMatchers, mvcMatchers & regexMatchers

In Spring Security 6 zijn AntMatcher, MvcMatcher en RegexMatcher afgeschreven en vervangen door requestMatchers of securityMatchers voor padgebaseerd toegangscontrole. Hierdoor kunnen we verzoeken matchen op basis van patronen of andere criteria, zonder afhankelijk te zijn van specifieke matchers.

In het vorige voorbeeld kunnen we zien dat het systeem toegang tot het ‘/api/auth’-eindpunt toestaat zonder authenticatie, terwijl authenticatie vereist is voor alle andere verzoeken.

7. Community and Ecosystem

Hieronder vindt u de respectievelijke links voor:

Conclusie

Spring Boot 3 is een grote release die verschillende nieuwe functies en verbeteringen introduceert, waaronder:

Deze nieuwe functies en verbeteringen maken Spring Boot 3 tot een krachtiger en veelzijdiger raamwerk voor het ontwikkelen van Java-applicaties. Ze maken het ook eenvoudiger om applicaties te bouwen die efficiënter, schaalbaarder en veiliger zijn.

Als u momenteel Spring Boot gebruikt, kunt u overwegen een upgrade naar Spring Boot 3 uit te voeren om van deze nieuwe functies en verbeteringen te profiteren. Als Spring Boot nieuw voor je is, is Spring Boot 3 een prima startpunt voor het bouwen van je volgende Java-applicatie.

Meer Resources

Voor meer informatie over Spring Boot en hoe u Redis cache implementeert en gebruikt, kunt u onze inzichten bekijken: Redis Cache in Spring Boot applications of Distributed Caching using Redis in Spring Boot applications.

Lees meer Inzichten op Software Product Engineering.

Newsletter Subscription