Siguiendo esta guía de migración: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide

La versión mínima de Spring Boot para Java 21 es 3.2.

Se irá completando esta guía con las cosas que nos afecten.

Revisar versiones de dependencias y plugins

Revisar las dependencias de cada proyecto y ver que sean compatibles con spring boot 3.2.x y Java 21. Versiones que provee Spring Boot 3.0: https://docs.spring.io/spring-boot/docs/3.0.x/reference/html/dependency-versions.html#appendix.dependency-versions.properties.

Revisando el parent fundewebjs-api-parent, veo estas versiones:

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<resource.delimiter>@</resource.delimiter>
<spring-boot.version>2.7.18</spring-boot.version>
<spring-cloud.version>2021.0.9</spring-cloud.version>
<spring-security.version>5.7.7</spring-security.version>
<fundewebjs-starter.version>1.0.4</fundewebjs-starter.version>
<fundewebjs-dependencies.version>[1.0.8,1.9.99]</fundewebjs-dependencies.version>
<sonar.qualitygate.wait>true</sonar.qualitygate.wait>
<jacoco.version>0.8.12</jacoco.version>
<hibernate.version>5.6.15.Final</hibernate.version>
<maven-antrun-plugin.version>3.0.0</maven-antrun-plugin.version>
<maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
<maven-clean-plugin.version>3.2.0</maven-clean-plugin.version>
<maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version>
<maven-dependency-plugin.version>3.3.0</maven-dependency-plugin.version>
<maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
<maven-enforcer-plugin.version>3.0.0</maven-enforcer-plugin.version>
<maven-failsafe-plugin.version>2.22.2</maven-failsafe-plugin.version>
<maven-help-plugin.version>3.2.0</maven-help-plugin.version>
<maven-install-plugin.version>2.5.2</maven-install-plugin.version>
<maven-invoker-plugin.version>3.2.2</maven-invoker-plugin.version>
<maven-jar-plugin.version>3.2.2</maven-jar-plugin.version>
<maven-javadoc-plugin.version>3.4.1</maven-javadoc-plugin.version>
<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
<maven-shade-plugin.version>3.3.0</maven-shade-plugin.version>
<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
<maven-war-plugin.version>3.3.2</maven-war-plugin.version>

En fundewebjs-starter:

<java.version>1.8</java.version>
<spring-cloud.version>2021.0.6</spring-cloud.version>
<springdoc.version>1.6.13</springdoc.version>
<jjwt.version>0.9.1</jjwt.version>
<jdbc-driver.version>12.2.0.1.0</jdbc-driver.version>
<fundewebjs-dependencies.version>[1.0.8,1.9.99]</fundewebjs-dependencies.version>

En fundewebjs-dependencies:

<java.version>1.8</java.version>
<fdwjs.version>${project.version}</fdwjs.version>
<spring-boot.version>2.7.12</spring-boot.version>
<spring-cloud.version>2021.0.6</spring-cloud.version>
<spring-security.version>5.2.4.RELEASE</spring-security.version>
<jjwt.version>0.9.1</jjwt.version>
<lombok.version>1.18.12</lombok.version>
<commons-io.version>2.6</commons-io.version>
<micrometer.version>1.9.8</micrometer.version>
<commons.lang3.version>3.12.0</commons.lang3.version>
<log4j2.version>2.17.2</log4j2.version>
<jul2slf4j.version>1.7.35</jul2slf4j.version>
<hibernate-validator.version>5.1.0.Final</hibernate-validator.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<encoding>UTF-8</encoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

De estas versiones, habrá que actualizar las siguientes:

Pendiente de revisar todas las versiones y actualizaciones necesarias

Revisar Deprecations

Revisar qué clases, métodos y properties han quedado deprecated.

Para las properties que se han quitado o renombrado, se puede añadir la siguiente dependencia:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-properties-migrator</artifactId>
	<scope>runtime</scope>
</dependency>

Esta imprimirá un diagnóstico al inicio y migrará temporalmente las properties en tiempo de ejecución por ti. Esto es, lo usaremos para ver el diagnóstico si tenemos properties deprecated, pero no lo utilizaremos como parche.