Spring

Novidades do Spring Framework 5

O Spring Framework 5 foi lançado, depois de mais ou menos 4 anos trabalhando com a versão 4 do framework. Então, vem comigo, para você não ficar pra trás.

Claro que não dá para acompanharmos tudo o que evolui no mercado, mas você, como um programador Spring, precisa ter uma boa noção de como está o andamento desse framework. E é justamente isso que você e eu estamos fazendo agora: nos atualizando.

Agora, relaxa aí, que esse é um daqueles artigos rapidinhos de ler, e nem vai te deixar com a consciência pesada por não executar o código de exemplo, simplesmente, porque não tem.

Vamos lá?

O que tem de novo no Spring Framework 5?

As duas maiores novidades, sem dúvida, são a nova baseline com Java 8 e o suporte a programação reativa (Spring WebFlux). Além desses dois pontos, ainda podemos destacar:

  • Revisão no núcleo do framework
  • Pacotes, classes e métodos descontinuados
  • Spring Web MVC
  • Melhorias para os testes unitários

Aprofundando um pouquinho mais, veremos alguns detalhes dessas novidades da versão 5.

Nova linha de base com JDK 8+ e Java EE 7+

Agora, o mínimo que você precisa para usar o Spring Framework 5 é o Java 8. Toda a linha de base agora está em cima dessa versão do Java. E é fácil imaginar os benefícios, não é mesmo? Isso deixou o código mais legível, principalmente, pelo uso de generics, lambdas, etc.

E para quem esperou tanto pelo Java 9, o framework também é compatível com essa versão. Chegou até a se cogitar em ter Java 9 como linha de base, mas isso acabou sendo deixado de lado para que essa dependência não impedisse a entrega do Spring 5.

Em nível de API, ele é compatível com Java EE 8 e atende aos requisitos do Servlet 4.0, Bean Validation 2.0 e a nova JSON Binding API. Dentre outros, já foi testado com Tomcat 9.0 e Hibernate Validator 6.0, sendo que o Java EE 7 é o mínimo requerido.

Programação reativa (Spring WebFlux)

Uma novidade bem forte do framework é a programação reativa, através do framework Spring WebFlux. Ele é uma alternativa ao Spring MVC, que segue os princípios da reatividade e é totalmente assíncrono e não-bloqueante. Nesse modelo de programação, é possível escalar a aplicação verticalmente com um número menor de threads.

A boa notícia é que o Spring WebFlux é bem parecido com o já existente Spring MVC, ou seja, você vai aproveitar o que já conhece de programação web com esse framework, caso queira entrar no mundo reativo. Inclusive, eles podem até ser usados na mesma aplicação.

Claro que isso não é o fim do Spring MVC. Nem toda aplicação precisa desse tipo de solução, que é mais complexa, por isso o Spring MVC ainda vai continuar sendo usado.

Revisão no núcleo do framework

O código-fonte do Spring Framework 5 não é só totalmente compatível com Java 8, como também foi revisado para poder se beneficiar do uso de todas as funcionalidades do mesmo.

Aqui entra, por exemplo:

  • O uso de lambdas
  • Da API de reflexão mais recente
  • O uso de default methods nas interfaces
  • Uso das anotações @Nullable e @NotNull, para marcar parâmetros e retornos que permitem ou não valores nulos. Assim, vai ser possível evitar alguns “NullPointerException” em tempo de compilação
  • Ao invés do Commons Logging, o Spring 5 vem com seu próprio integrador de logs, que irá auto-detectar o Log4j 2.x, SLF4J, JUL (java.util.logging), sem nenhum intermediário

Pacotes, classes e métodos descontinuados

Nessa nova versão, tivemos também alguns pontos do framework que foram descontinuados. Dentre esses pontos, temos alguns pacotes, que são:

  • beans.factory.access
  • jdbc.support.nativejdbc
  • mock.staticmock do módulo spring-aspects
  • web.view.tiles2 – Agora, é necessário o Tiles na versão 3
  • orm.hibernate3 e orm.hibernate4 – A versão suportada agora é o Hibernate 5

Ainda tivemos a remoção de suporte das seguintes bibliotecas:

  • Portlet
  • Velocity
  • JasperReports
  • XMLBeans
  • JDO
  • Guava

Caso você precise do suporte para essas bibliotecas e/ou pacotes, é recomendado que você se mantenha na versão 4.3.x do framework.

Spring Web MVC

A prova de que o Spring Web MVC ainda está bem vivo, são as novidades que tivemos para ele nessa nova versão.

Primeiro, que ele está integrado com o WebFlux, e foi atualizado para utilizar a nova JSON Binding API do Java EE 8 e ainda as versões do Jackson 2.9 e Protobuf 3.

Saiu também o suporte para PushBuilder do Servlet 4.0, como argumento de métodos de um controlador do Spring MVC.

Ainda temos o suporte para retornar Reactor 3.1 FluxMono, e RxJava 1.3 e 2.1 a partir de métodos dos controladores, visando o uso do novo WebClient reativo ou em repositórios reativos do Spring Data.

Melhorias para os testes unitários

Nesse ponto foi implementado o suporte completo para JUnit 5. Temos também o suporte para execução de testes paralelos com Spring TestContext Framework.

Para testes em sistemas reativos, o Spring trouxe o WebTestClient, que de maneira parecida ao MockMvc, não precisa de um servidor rodando.

Conclusão

Tivemos várias coisas legais nessa nova versão do Spring Framework, mas, sem dúvida, as maiores são a entrada do framework no mundo reativo e a linha de base com o Java 8.

O legal também é que essas mudanças vão disparar várias outras nos outros frameworks do ecossistema Spring, como o Spring Security, Spring Data, Spring Integration, etc, sem contar que é sempre empolgante ver que o framework que usamos está a todo vapor.

Se você deseja baixar o Spring manualmente, então pode entrar no site spring.io. Mas…

Para quem deseja entrar nesse mundo da alta produtividade no desenvolvimento com Spring, aconselho que faça agora o download do nosso e-book Produtividade no Desenvolvimento de Aplicações Web com Spring Boot.

Ebook Spring Boot

Espero que tenha gostado de conhecer as novidades do Spring Framework 5. :)

No mais, um abraço pra você e até uma próxima!

Trabalha como programador Java há mais de uma década, principalmente com desenvolvimento de sistemas corporativos.Além de colaborar com o blog, também é instrutor de vários cursos de Java na AlgaWorks.

Olá,

o que você achou deste conteúdo? Conte nos comentários.

Junte-se a mais de 100.000 pessoas

Entre para nossa lista e receba conteúdos exclusivos e com prioridade

Você se Inscreveu com Sucesso!

Blog da AlgaWorks
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.