Por que eu devo ler este artigo:Este artigo visa apresentar a nova versão do framework Spring, um dos mais populares e completos presentes no ecossistema Java. Durante o artigo será abordada tanto uma visão geral de seus novos recursos quanto uma visão mais detalhada de alguns deles.

Este estudo ajudará tanto os leitores que já estão familiarizados com o framework Spring e querem saber o que essa versão está trazendo de novo quanto os que ainda não o conhecem na prática e querem ter um primeiro contato.

Com 10 anos de existência, o Spring ainda é um dos mais importantes e mais usados frameworks do ecossistema Java. Criado por Rod Johnson, e amplamente divulgado através dos livros de sua autoria, o Spring veio com o objetivo de facilitar o desenvolvimento e deployment de aplicações Java enterprise e rapidamente ganhou popularidade entre a comunidade e as empresas.

A introdução de conceitos e facilidades inexistentes até então na plataforma Java EE o transformou na solução preferida a ser adotada em novos projetos.

Com o passar do tempo, muitas das suas funcionalidades passaram a fazer parte da especificação Java EE, como injeção de dependência e inversão de controle. Ao mesmo tempo, novos recursos do Java também ajudaram em sua evolução, como por exemplo, o uso de Annotations ao invés dos seus longos arquivos XML de configuração.

Desde a criação do Spring, sempre existiu muita discussão (algumas até mais acaloradas) comparando-o com a Java EE e qual papel cada um desses elementos desempenharia no desenvolvimento de aplicações Java enterprise.

O que parece ser mais razoável é que de início o Spring realmente atuava como um substituto às tecnologias “padrões” da Java EE, como entity beans e session beans. É verdade, porém, que muito de seu sucesso é relacionado com o surgimento do Hibernate, que atuou e ainda atua como seu grande “parceiro” em muitos projetos.

No entanto, com o passar do tempo e com a evolução da especificação Java EE, esses frameworks também passaram a ser vistos como ferramentas que podem ser usadas em conjunto com a especificação, e não somente como substitutos. Afinal de contas, muitas das funcionalidades do Spring são baseadas em tecnologias padrões, como JNDI, JMS e JTA. O próprio Hibernate passou a ser uma implementação da especificação do JPA.

Mas o Spring não parou por aí. Suas versões sempre trouxeram novos projetos visando novas funcionalidades e facilidades, como o spring-integration, spring-data, spring-mvc, spring-social, entre outros. O projeto Spring cresceu tanto com o passar do tempo que atualmente ele possui algumas dezenas de subprojetos, o que torna o um verdadeiro “canivete suíço”.

Spring Framework 4

A versão 4 foi lançada recentemente, mais precisamente em dezembro do ano passado, e trouxe consigo um conjunto de novas funcionalidades e de melhorias visando suportar o Java 8 e a Java EE 7. Durante esse artigo vamos dar um panorama geral sobre esses novos recursos e mostrar na prática como utilizar alguns deles.

Dentre algumas das novas funcionalidades liberadas nessa versão, podemos citar:

  • Suporte completo ao Java 8: Disponibiliza recursos como expressões lambda e “Date and Time API”. Vale ressaltar que a versão mínima do Java suportada pelo Spring 4 passa a ser JDK 6u10, porém é recomendado o uso da versão 7 ou 8;
  • Java EE 7: Suporta novas especificações introduzidas na Java EE 7, tais como JMS 2.0, JTA 1.2, JPA 2.1, Bean Validation 1.1 e Concurrency Utilities;
  • Groovy: É possível configurar o Spring e seus beans usando Groovy através de arquivos externos. Parecido com a ideia inicial de configuração via XML, mas usando uma linguagem mais bem definida para esse propósito;
  • Core: Melhorias gerais, tais como adição de novas anotações como, por exemplo, @Ordered, @Description e @Conditional;
  • Web: Algumas novas funcionalidades são a adição da classe AsyncRestTemplate (que permite a criação de clientes REST não-bloqueantes), compatibilidade com a API de WebSocket e adição da anotação @RestController;
  • Documentação: Criação de um novo website com a disponibilização de vários guias que ensinam a trabalhar com o Spring e seus módulos.

Após essa análise superficial de algumas das novas funcionalidades disponibilizadas no Spring 4, vamos agora tratar algumas delas com mais profundidade através de exemplos. Como alguns dos exemplos requerem um servidor de aplicações compatível com a Java EE 7, iremos usar o WildFly para esse propósito.

O servidor WildFly

O WildFly nada mais é que a continuação do servidor de aplicações JBoss, porém com outro nome. Essa mudança ocorreu principalmente para evitar uma confusão de nomes, já que a Red Hat também tem uma solução chamada JBoss Enterprise Application Platform (JBoss EAP), que é composta pelo próprio servidor de aplicações e vários outros produtos, como Infinispan, Red Hat Linux, entre outros. A versão do WildFly usada nesse artigo é a 8.0.0.Final, que foi lançada em meados de fevereiro e já é certificada Java EE 7.

Instalação

O WildFly 8 possui a mesma estrutura do JBoss AS 7, portanto tanto a instalação quanto a operação são bem similares. Após fazer o download do servidor, basta descompactá-lo e definir a variável de ambiente JBOSS_HOME, que deve apontar para o diretório no qual o servidor foi descompactado. Apesar do nome do servidor ter mudado, a variável de ambiente foi mantida com o nome JBOSS_HOME, pelo menos por enquanto. Para inicializar o servidor, basta executar o script JBOSS_HOME/bin/standalone.sh (ou .bat caso esteja no Windows).

Explorando o Spring 4 com exemplos práticos

A demonstração de alguns dos recursos do Spring 4 será feita através de um projeto que será baseado no Maven e no Eclipse. O objetivo desse projeto não é criar uma aplicação completa, e sim permitir que o leitor veja algumas das novas funcionalidades do Spring na prática.

Para a criação do projeto no Eclipse, vá até o menu File | New > Other, digite “Maven” no campo Wizard, selecione a opção Maven Project e clique em Next. Na próxima tela, marque a opção Create a simple project (skip archetype location) e clique em Next. Nessa tela, os campos devem ser preenchidos com as seguintes informações:

  • Group Id: “br.com.javamagazine”;
  • Artifact Id: “spring4-demo”;
  • Version: “1.0.0”;
  • Packaging: “war”.

Para finalizar a criação, clique em Finish. Para que o projeto tenha acesso às bibliotecas necessárias para compilação e execução do código, o arquivo pom.xml deve ser alterado para que fique como na Listagem 1. Este arquivo define o Spring 4 como dependê ...

Quer ler esse conteúdo completo? Tenha acesso completo