Spring Framework 6 y Spring Boot 3

Advertisements

Se ha lanzado una nueva generación de Spring Framework, después de 5 años con Spring Framework 5.x, en noviembre de 2022, se ha lanzado Spring Framework 6. Y con él, Spring Boot tiene disponible una nueva versión principal, Spring Boot 3.

Ahora la pregunta es: ¿Qué hay de nuevo en estas nuevas versiones? Hay varias características nuevas, y algunas otras características obsoletas se han eliminado. Pero hay 4 características principales en estas versiones lanzadas.

  • Java 17 es la línea de base
  • Compatibilidad con las especificaciones y los paquetes de Jakarta EE 9 y 10.
  • Observabilidad mejorada con Micrometer
  • Compilación Nativa usando GraalVM

Java 17

Aunque la versión anterior de Spring Framework y Spring Boot tenía soporte para ejecutarse en Java 17, la línea base del código no es la última versión LTS. Para estas nuevas versiones, se compilan internamente las bibliotecas y se usan muchas de las nuevas características provistas en Java 17. Esto significa que también deberá migrar su código de línea base a Java 17 para comenzar a usar Spring Framework 6 o Spring Boot 3.

Soporte de Jakarta EE

Spring Framework utiliza algunas de las especificaciones de Java EE, por ejemplo, para Servlets, JPA o admite anotaciones CDI. Cuando Java EE se trasladó a la Eclipse Foundation y cambia el nombre a Jakarta EE, esas especificaciones también tuvieron que cambiar los paquetes de javax.* a jakarta.*.

Por lo tanto, usar el paquete javax.servlet.http.HttpServletRequest ahora es jakarta.servlet.http.HttpServletRequest. O javax.persistence.Entity se reemplaza por. jakarta.persistencia.Entity .

Observabilidad

Con Spring 6, hubo una iniciativa de observabilidad que terminó con una nueva API de Micrometer  Observation y con el antiguo proyecto Spring Cloud Sleuth migrado a Micrometer Tracing. Esto es más para registrar de manera eficiente las métricas de la aplicación con Micrometer e implementar el seguimiento a través de proveedores, como OpenZipkin uOpenTelemetry.

Hay una configuración automática para todos estos en Spring Boot 3, y los proyectos de Spring están trabajando para instrumentarse usando la API de observación.

Compilación Nativa

Esta función es una respuesta a los frameworks como Quarkus y Micronaut, que han ido ganando popularidad debido al menor uso de recursos. Ahora, podemos generar código nativo sin complementos o complementos de terceros. Simplemente ejecutando mvn springboot:aot-generate.

Otras nuevas características

La nueva versión no se limita a las nuevas características mencionadas anteriormente. Hay muchas mejoras, por ejemplo:

Advertisements
  • Soporte para de un nuevo cliente Java para Elastic-search
  • Soporte para Flyway 9
  • Soporte para Hibernate 6.1

¿Cómo comenzar con estas versiones?

Seguro que te estarás preguntando en este momento qué necesito para empezar a usarlo.

Un proyecto nuevo desde cero

Si desea crear un nuevo proyecto desde cero, es tan simple como usar Spring Initializer. Seleccione Spring Boot 3.0 en las opciones, genere y descargue un proyecto con toda la configuración inicial requerida.

O puede crear manualmente un proyecto usando gradle o maven y agregar la dependencia: groupId org.springframework.boot, artifactId spring-boot-starter-parent y version 3.0.0.

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>3.0.0</version>
</parent>

Si desea crear un archivo jar ejecutable, puede agregar el complemento.

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>


Migración desde una versión anterior

Es posible que ya tenga una compilación de proyecto en Spring 5 y Spring Boot 2.7.x, o versiones anteriores. El primer paso debe ser migrar su código existente para usar las últimas versiones de Spring 5 y Spring Boot.

Luego, podemos usar la “herramienta experimental” Spring Migrator, que nos ayudará a mover nuestro código de Spring Boot 2.7.x a Spring Boot 3.0.0.

Si no está seguro de usar esa herramienta, lo podemos hacer manualmente.

  • Primero migre su código para compilarlo y ejecutarlo en Java 17.
  • Elimine los usos obsoletos informados en Spring 2.7.x. Porque Spring 3.0.0 está eliminando esas características obsoletas.
  • Reemplace los paquetes javax a jakarta en los import.
  • Actualice a Apache HttpClient 5. Necesario si utiliza Rest Template.
  • Prefijo Spring Data, toda la configuración de Spring Data DEBE comenzar ahora con el prefijo spring.data, por ejemplo: spring.elasticsearch debe reemplazarse por spring.data.elasticsearch

Referencias

Advertisements

Leave a Reply

Your email address will not be published. Required fields are marked *