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!

É graduado em Sistemas de Informação, trabalha como instrutor na AlgaWorks e está no mercado de programação Java há mais de 9 anos, principalmente no desenvolvimento de sistemas corporativos.

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!