Java

19 nov, 2025

Spring Boot 4 e Spring Framework 7: Principais recursos e alterações

Publicidade

O Spring Boot 4 será lançado em novembro de 2025 (versões Milestones já disponíveis), desenvolvido com base no novo Spring Framework 7.0.0.

Se você desenvolve aplicativos Java modernos, esta versão traz uma série de atualizações e novos recursos que vale a pena explorar.

Após a grande migração do Spring Boot 3.x para o Jakarta EE 10, o Spring Boot 4 continua a jornada de modernização com um alinhamento mais forte com o Jakarta EE 11, JDKs modernos e práticas de desenvolvimento nativas da nuvem. Este é um marco importante que define o tom para a próxima década de desenvolvimento Java.

Neste artigo, destacaremos as mudanças mais importantes e o que elas significam para seus projetos.

Atualizações da plataforma Spring Boot 4

1. Suporte a Java e JVM

JDK mínimo: 17 (LTS e amplamente adotado).
JDK recomendado: 25 (lançamento em setembro de 2025).
Alinhamento total com GraalVM 24 para compilações de imagens nativas.

2. Alinhamento com Jakarta EE 11

Servlet 6.1 para APIs web modernas.
JPA 3.2 + Hibernate ORM 7.0 para persistência mais eficiente.
Bean Validation 3.1 com restrições aprimoradas e suporte a Kotlin/registros.

3. Suporte a Kotlin 2.2

Suporte aos recursos da linguagem Kotlin 2.2.
Suporte mais suave a corrotinas.
Melhor integração com a compilação Gradle.

4. Nativo da nuvem e conteinerização

Buildpacks aprimorados com camadas de imagem mais rápidas.
Compilações nativas do Docker mais eficientes.
Integração do Micrometer 2.x + OpenTelemetry.

5. Produtividade e experiência do desenvolvedor

Atualizações da CLI do Spring Boot (gerenciamento de dependências, estrutura de testes).
Novos pontos de extremidade do Actuator.
Gerenciamento mais fácil de propriedades e perfis.

6. Segurança

Baseado no Spring Security 7.
Integração mais forte com OAuth 2.2 / OIDC.
Padrões de criptografia aprimorados.

7. Preparação para o futuro com Spring AI e APIs nativas

Hooks iniciais para integrações Spring AI.
APIs melhores para dicas de imagens nativas GraalVM.

Recursos do Spring Framework 7

1. Versões elegantes da API

O Spring Framework 7 agora oferece suporte a versões da API diretamente na anotação @RequestMapping, facilitando a manutenção de várias versões de seus endpoints REST e garantindo compatibilidade com versões anteriores.

Você pode especificar a versão desejada usando o cabeçalho Versão em sua solicitação HTTP. O controlador encaminhará a solicitação para o método apropriado com base na versão fornecida.

Para chamar a versão 1 da API (retorna uma lista simples de produtos):

Para chamar a versão 2 da API (retorna pesquisa aprimorada com metadados):

GET /api/products/search?query=laptop&limit=20

2. Segurança nula com JSpecify

O Spring Framework 7 migrou para anotações JSpecify, melhorando a segurança nula e a integração com Kotlin. O JSpecify fornece contratos de nulidade mais precisos para parâmetros de método, tipos de retorno e campos, ajudando os desenvolvedores a detectar possíveis bugs relacionados a nulos em tempo de compilação.

Veja como você pode usar anotações JSpecify em um componente Spring:

Neste exemplo, o parâmetro userId pode ser nulo, mas o método garante um valor de retorno diferente de nulo. Isso ajuda a evitar exceções de ponteiro nulo e melhora a confiabilidade do código, especialmente ao integrar com Kotlin ou outras linguagens nulas seguras.

3. Registro programático de beans com BeanRegistrar

O Spring Framework 7 introduz o contrato BeanRegistrar, permitindo que os desenvolvedores registrem beans programaticamente com mais flexibilidade. Isso é útil para cenários avançados em que vários beans precisam ser registrados dinamicamente, além do que é possível com os métodos @Bean.

Você pode registrar beans com base nas condições de tempo de execução ou configuração externa, tornando sua aplicação mais dinâmica e modular.

4. Suporte aprimorado para opcionais em expressões SpEL

O SpEL (Spring Expression Language) agora oferece melhor suporte para tipos opcionais, incluindo operações null-safe e o operador Elvis. Isso facilita o trabalho com valores opcionais em configurações e definições de beans.

Você pode lidar com valores ausentes com segurança e evitar exceções de ponteiro nulo em sua configuração e conexão de beans.

5. Recursos de resiliência

@Retryable, @ConcurrencyLimit, @EnableResilientMethods

Novas anotações como @Retryable e @ConcurrencyLimit ajudam a criar aplicativos mais resilientes, habilitando a lógica de repetição e os limites de simultaneidade diretamente nos métodos de serviço. A anotação @EnableResilientMethods ativa esses recursos para os beans.

Você pode adicionar controle de repetição e simultaneidade à sua lógica de negócios com anotações simples, melhorando a confiabilidade e a escalabilidade.

6. Configuração dedicada para clientes HTTP com @ImportHttpServices

O Spring Framework 7 adiciona a anotação @ImportHttpServices, facilitando a configuração e o agrupamento de clientes HTTP. Isso simplifica a configuração de aplicativos que interagem com vários serviços externos.

Você pode organizar e configurar vários clientes HTTP de maneira eficiente, reduzindo o código padrão e melhorando a manutenção.

7. Suporte a streaming com InputStream e OutputStream em clientes HTTP

Os clientes HTTP agora oferecem suporte a corpos de solicitação e resposta de streaming usando InputStream e OutputStream. Isso é especialmente útil para lidar com arquivos grandes ou fluxos de dados de maneira eficiente.

Você pode lidar com uploads e downloads de arquivos grandes sem carregar tudo na memória, melhorando o desempenho e a escalabilidade.

8. Novo JmsClient e aprimoramentos no JdbcClient

O novo JmsClient fornece uma API moderna para trabalhar com JMS (Java Message Service), enquanto o JdbcClient foi aprimorado para operações de banco de dados mais fáceis e flexíveis.

Você obtém uma API mais fluente e moderna para mensagens e acesso ao banco de dados, reduzindo o código repetitivo e melhorando a produtividade do desenvolvedor.

9. Configuração centralizada para conversores de mensagens HTTP

O Spring Framework 7 introduz a configuração centralizada para conversores de mensagens HTTP, facilitando a personalização da forma como os dados são serializados e desserializados em aplicações web.

Você pode personalizar facilmente a lógica de serialização e desserialização para suas APIs em um único local, melhorando a consistência e a manutenção.

10. Novo RestTestClient para testes de API REST

O RestTestClient é uma nova ferramenta para testes de APIs REST, oferecendo uma API fluente e suporte para servidores ativos e configurações simuladas. Ele simplifica a criação e a manutenção de testes de integração para seus pontos finais.

Você pode escrever testes de integração concisos e legíveis para seus pontos finais REST, melhorando a cobertura e a confiabilidade dos testes.

11. Correspondência de caminho aprimorada com suporte PathPattern melhorado

A correspondência de caminho no Spring MVC foi aprimorada com o suporte PathPattern melhorado, substituindo opções legadas e fornecendo correspondência de modelo URI mais poderosa e flexível para seus controladores.

Você pode definir padrões de URI mais flexíveis e poderosos para seus controladores, tornando o roteamento e o design de pontos finais mais fáceis e expressivos.

12. Remoções e descontinuações de APIs

O Spring Boot 4 e o Spring Framework 7 removeram vários recursos legados e descontinuaram APIs para otimizar a estrutura e incentivar práticas de desenvolvimento modernas.

Abaixo, você encontra mais detalhes sobre cada remoção e descontinuação.

Alterações no módulo

O módulo spring-jcl foi descontinuado em favor do Apache Commons Logging, simplificando a infraestrutura de registro em log. Além disso, as anotações de javax.annotation e javax.inject não são mais suportadas — você precisará migrar para seus equivalentes em Jakarta: jakarta.annotation e jakarta.inject.

Simplificação do mapeamento de caminho

Várias opções de mapeamento de caminho foram removidas do Spring MVC. Recursos como suffixPatternMatch, trailingSlashMatch e favorPathExtension não são mais suportados em métodos de controlador anotados e negociação de conteúdo.

Anteriormente, era possível usar o roteamento baseado em sufixo:

Ou configure a correspondência de padrões de sufixo na configuração Java:

Essas opções foram removidas. Em vez disso, use tipos de mídia explícitos e modelos de URI para um roteamento mais limpo e previsível.

XML Configuration Deprecation

XML configuration for Spring MVC is now deprecated. If you’re still using XML-based configuration like this:

Recomenda-se migrar para a configuração baseada em Java:

Atualizações de teste e serialização

O suporte para JUnit 4 e Jackson 2.x também está obsoleto, incentivando a migração para JUnit 5 e versões mais recentes do Jackson para obter melhor desempenho e recursos de teste modernos.

Lista de verificação de migração

Atualize para JDK 17+ (recomenda-se 25).
Substitua javax.* por jakarta.*.
Revise a correspondência de caminho MVC — correspondência de sufixo e barra removida.
Mova as configurações XML → configuração baseada em Java.
Atualize os testes: JUnit 5 + Jackson 3.x.
Verifique as dicas nativas do GraalVM se estiver usando imagens nativas.
Java 17+, atualizações de pacotes, configurações XML e Junit 5 são algumas mudanças que você pode começar agora, para garantir que seu projeto esteja pronto e simplificar o processo de migração.

Considerações finais

O Spring Boot 4 e o Spring Framework 7 marcam um grande passo à frente para o desenvolvimento Java, trazendo mais segurança, flexibilidade e recursos para aplicativos modernos. Se você está pensando em atualizar seu projeto, recomendo revisar as alterações cuidadosamente e testar exaustivamente antes de passar para a produção. O Spring Boot 3.5.x atual terá suporte OSS até junho de 2026, então planeje-se adequadamente!

Boa programação!

Referências

Documentação de referência do Spring Boot 4.0
Documentação de referência do Spring Framework 7.0
Notas de lançamento do Spring Framework 7.0
Notas de lançamento do Spring Boot 4.0