Artigo Java Magazine 65 - Criando uma aplicação web com Spring Framework

Artigo da Revista Java Magazine Edição 65.

Esse artigo faz parte da revista Java Magazine edição 65. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse artigo em PDF.

Criando uma aplicação web com Spring Framework

Desenvolvendo uma aplicação completa com Spring Framework, JSF e JPA

Saiba também como se tornar um profissional certificado em Spring pela SpringSource

 

De que se trata o artigo:

Desenvolvimento de uma aplicação completa para a Web com o Spring Framework e os serviços Java EE de persistência e transação.

 

Para que serve:

Estabelecer um modelo de componentização mais simples que os EJBs e permitir o uso de serviços Java EE de maneira simples, configurável e não intrusiva. Por conseqüência, reduz-se linhas de código e torna a aplicação mais fácil de testar num framework leve e baseado em injeção de dependências.

 

Em que situação o tema é útil:

Mostra como o Spring Framework pode ser usado para gerenciar os componentes de negócios da aplicação. Através de anotações e algumas configurações em XML, o Spring é usado numa aplicação web integrada com o JSF e JPA. Assim, o artigo apresenta o desenvolvimento completo de uma aplicação desde a componentização definida através de interfaces e a implementação gerenciada através do framework.

 

Criando uma aplicação web com Spring Framework:

O Spring é um dos frameworks mais controversos e populares atualmente que sugere uma abordagem diferente para a componentização de aplicações Java EE sem o uso de Enterprise JavaBeans (EJB). Neste artigo, o Spring Framework é ilustrado através de uma aplicação simples, completa e integrada com JavaServer Faces (JSF). O exemplo cobre desde a modelagem inicial até a implementação dos componentes de negócios e telas na web.

 

O Spring Framework é um projeto open source criado com a intenção de estabelecer uma proposta alternativa ao modelo de componentização do Java EE e boas práticas no desenvolvimento de aplicações corporativas sem o uso de EJBs (Enterprise JavaBeans).

No livro Expert One-on-One J2EE Design and Development publicado em 2002 e escrito por Rod Johnson (criador do Spring), foram apresentados vários exemplos e boas práticas de desenvolvimento de aplicações enterprise. A partir dos códigos ilustrados neste livro nasceu em fevereiro de 2003 a primeira versão do projeto, batizado de Spring Framework e aberto para a comunidade de software livre. Contudo, as idéias que deram origem às práticas descritas no livro foram anteriores e datam de 2000, com base na experiência do autor em sucessivos projetos de sucesso.

O objetivo principal do Spring foi estabelecer um modelo de componentização mais simples que o proposto através dos EJBs da plataforma J2EE. Este modelo visava oferecer uma maneira simples, configurável e não-intrusiva de criar, configurar e manter componentes de negócios com acesso aos serviços J2EE que outrora estariam disponíveis somente através de EJBs. Contudo, os EJBs, na época da concepção do Spring, estabeleciam um modelo de componentização burocrático e trabalhoso que exigia a implementação de algumas interfaces, a criação de arquivos de configuração (deployment descriptors) e o empacotamento complexo para ter acesso aos serviços J2EE disponibilizados através de um contêiner num servidor de aplicações. Em contra partida, a alternativa proposta pelo Spring sugeria o uso de classes simples em Java para a definição da lógica de negócios sem a necessidade de implementar interfaces de um framework para ter acesso a estes serviços.

Características do Spring Framework

Para atender aos seus objetivos, o Spring Framework realiza as seguintes características:

Lightweight - O Spring oferece uma arquitetura modular e consistente que permite o uso de recursos isolados do framework de acordo as necessidades. Assim, torna-se possível usar o Spring, por exemplo, apenas para simplificar os códigos que usam JDBC, ou para gerenciar todos os componentes de negócios da aplicação. Será possível aplicar o Spring incrementalmente numa aplicação existente. Esta característica também está relacionada ao fato do Spring não precisar de um contêiner de um servidor de aplicações para disponibilizar os serviços Java EE para os componentes da aplicação. Assim, a aplicação pode ser executada num ambiente mais leve e exigindo uma capacidade menor da máquina, comparado às exigências dos servidores Java EE.

Orientado a Aspectos (AOP) - Através dos conceitos da programação orientada a aspectos, ao complementar a programação orientada a objetos, o Spring permite separar a lógica de negócios, implementada em componentes de negócios com classes simples, dos serviços de infra-estrutura e serviços tecnológicos implementados pelo Spring ou outros frameworks. Assim, o Spring oferece para as aplicações a implementação dos serviços Java EE via integração com outros frameworks de maneira não-intrusiva. Portanto, os objetos fundamentais da aplicação poderão se limitar a realizar somente a lógica de negócios e não ser responsáveis por gerenciar ou obter os serviços Java EE.

Orientado à Injeção de Dependências - O Spring promove o desacoplamento entre os componentes de negócios da aplicação e os componentes que realizam os serviços Java EE ao gerenciar o ciclo de vida destes objetos. Esta característica do Spring induz à organização da aplicação segundo um padrão de projetos onde os componentes de negócios não são responsáveis por obter a referência para outros objetos que usam, mas recebem do Spring as referências necessárias para estes objetos durante a instanciação dos seus componentes.

Suporte ao conceito de Contêiner - Através de um contêiner simples e leve o Spring pode manter e gerenciar o ciclo de vida dos objetos instanciados para a aplicação. Com esta característica, o Spring permite o controle de como os objetos devem ser instanciados, configurados e relacionados através de Injeção de Dependências.

Framework - O Spring também é um framework ao disponibilizar vários recursos prontos a serem incorporados à aplicação. Estes recursos permitem a integração dos componentes da aplicação com serviços Java EE implementados por outros frameworks. Várias das boas práticas sugeridas pelo Spring estão encapsuladas em classes prontas a serem reusadas, também reduzindo o número de linhas de código na aplicação.

O Framework

Ao longo destes anos de existência e evolução, o Spring tornou-se uma plataforma de desenvolvimento de aplicações Enterprise que promove um modelo de integração dos componentes de negócios da aplicação com os serviços Java EE. Este modelo realizado pelo framework permite os componentes de negócios de uma aplicação ter acesso aos serviços Java EE de maneira simples, leve, configurável e não-intrusiva.

O Spring framework não pretende reinventar a roda. Pretende tornar o desenvolvimento de aplicações enterprise com acesso aos serviços Java EE mais simples, leve e testável. Não estão disponíveis no Spring uma implementação de pool de conexões, um mecanismo de mapeamento Objeto/Relacional ou um gerenciador de transações distribuído. Por outro lado, o Spring disponibiliza um pacote de classes que implementam um modelo consistente para integração com diversos frameworks ou bibliotecas que implementam estes recursos. Estão disponíveis no Spring classes que permitem o uso do Commons DBCP como implementação de pool de conexões, ou DataSource obtido via busca JNDI; integração com o TopLink, Hibernate, JPA ou JDO com gerenciamento de transação realizado por uma implementação de JTA. Além de outras estratégias de gerenciamento de transações e integração com diversos outros frameworks.

A Figura 1 ilustra numa estrutura em árvore os diversos recursos de integração que o Spring disponibiliza. Esta figura apresenta as integrações com tecnologias que implementam serviços Java EE, tais como, mensagens, conectores, acesso remoto, transação e e-mail. Também são ilustradas as integrações com diversos outros frameworks para persistência via mapeamento O/R, desenvolvimento na WEB com o padrão de projetos MVC e tecnologias para desenvolvimento de interfaces ricas.

 

Figura 1. Ilustração dos principais módulos do Spring e integração com as tecnologias.

Os elementos-folha nesta ilustração representam as tecnologias ou frameworks que o Spring permite integrar. Contudo, em alguns casos o Spring traz uma implementação própria como, por exemplo, o Spring MVC e Spring JDBC (templates e datasources).

A partir desta ilustração, pode-se identificar os principais módulos do Spring Framework que trazem classes já prontas para realizar as características de injeção de dependências, AOP e integração com outros frameworks e tecnologias. As seguintes partes do Spring estão ilustradas:" [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados