Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

O artigo trata das vantagens e desvantagens presentes na integração entre o JSF 2 e o Spring 3, além das configurações necessárias para realizar a integração através do Spring Web Flow.


Para que serve:

A integração entre as duas tecnologias visa diminuir os pontos fracos de cada uma. O framework Spring Web Flow surge como uma opção viável para resolver este problema, mostrando que elas podem se complementar passando a fornecer uma “caixa de ferramentas” ainda mais poderosa para o desenvolvimento de aplicações web.


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

Os desenvolvedores de aplicações web poderão se beneficiar conhecendo as vantagens e desvantagens desta integração. Conhecer esta combinação através do framework Spring Web Flow traz ainda uma nova “carta no baralho” dos desenvolvedores, que poderão criar aplicativos com componentes ricos e um belo back-end.

Resumo DevMan:

O JavaServer Faces 2 é uma especificação criada para auxiliar o desenvolvimento de aplicações web MVC com um foco na camada de visão através de componentes UI poderosos. O Spring 3 é um framework baseado no padrão Inversão de Controle que conta com diversos módulos que auxiliam no acesso a dados, no desenvolvimento orientado a aspectos, na gerência de transações e, assim como o JSF, no desenvolvimento web (Spring MVC).

Podemos unir estas duas tecnologias com o objetivo de aumentar a produtividade, construir aplicações desacopladas, reusáveis e com interfaces atraentes. Uma das maneiras de realizar esta integração é através do Spring Web Flow. O artigo apresenta seus conceitos, configurações e arquitetura para alcançar este propósito. Dessa forma você poderá aproveitar o melhor que cada uma dessas tecnologias tem a oferecer.

A grande quantidade de frameworks disponíveis para as aplicações web nos dias de hoje nos permite realizar combinações que podem aumentar a produtividade e a qualidade dos softwares que desenvolvemos. No entanto, muitas vezes essas combinações não são tão simples, pois envolvem a manipulação de recursos ou arquivos compartilhados entre os frameworks. Este é o caso da integração entre o JSF 2 e o Spring 3.

O JavaServer Faces é uma tecnologia usada para criar aplicações web MVC através de componentes ricos para a interface com o usuário (UI). Apesar de ser muito boa no que se propõe a fazer, existem pontos importantes que uma boa aplicação deveria ter e que não são contemplados pelo JSF, como por exemplo, permitir o uso da injeção de dependências para diminuir o acoplamento e facilitar os testes, apoiar o desenvolvedor no acesso a dados, garantir a segurança da aplicação, entre diversas outras questões. Estes requisitos são contemplados pelo Spring Framework, uma ferramenta extremamente poderosa que apesar de possuir um módulo para auxiliar o desenvolvimento web chamado Spring MVC, não utiliza a ideia de componentes de interface para a camada de visão, como é o caso do JSF.

Podemos então unir estas duas tecnologias e tirar o máximo de proveito de cada uma. Porém, integrá-las não é uma tarefa trivial, e devido a isso, diversas abordagens foram criadas. Uma opção que consegue aproveitar os principais benefícios do JSF e do Spring de maneira satisfatória é a utilização de um terceiro framework, denominado Spring Web Flow.

O Spring Web Flow é uma ferramenta de workflow com o objetivo de controlar o fluxo das páginas da aplicação. Além desta, ele possui outras funcionalidades, como a capacidade de integrar o JSF 2 com o Spring 3. Este artigo mostrará como isso acontece através de exemplos de fluxos e de uma nova arquitetura que descreve a relação entre os três frameworks. Também serão apresentadas as configurações necessárias para tornar suas aplicações web integradas e as vantagens e desvantagens envolvidas neste processo.

Workflow: Segundo a Workflow Management Coalition, workflow é a automação de um processo, no todo ou em parte, durante o qual documentos, informações ou tarefas são transferidos entre as entidades participantes, de acordo com um conjunto definido de regras, para alcançar um determinado objetivo nos negócios. Um workflow é composto por um conjunto de passos, conectados entre si através de transições. Cada passo possui uma ou mais ações. Essas ações podem ser executadas pelos usuários, como o preenchimento de um formulário eletrônico; ou pelo próprio sistema, como a execução de um cálculo ou envio de e-mail. O resultado da execução de uma ação pode resultar na mudança de passo, através de uma transição, ou então no fim do workflow.

O que sua aplicação web ganha utilizando JSF 2?

O JSF é uma especificação criada para auxiliar o desenvolvimento de aplicações web MVC que utilizam Java. O seu uso facilita a construção de uma aplicação organizada em camadas e baseada em componentes. Estes componentes, por sua vez, permitem ao desenvolvedor criar interfaces ricas e reutilizáveis, com pouco esforço e sem a necessidade de escrever dezenas de códigos em JavaScript e CSS.

Com o lançamento da versão 2, diversas melhorias foram apresentadas para diminuir o número de configurações e incluir novas funcionalidades, tornando assim o JSF uma opção valiosa para o desenvolvimento de aplicações web.

Para conhecermos melhor o que o JSF pode proporcionar às nossas aplicações, vejamos suas principais vantagens:

• Apoio na comunicação entre as camadas de uma aplicação MVC. O JSF, através dos managed beans, permite a comunicação entre as camadas de controle e de visão da aplicação. Através de annotations, disponíveis na nova versão, essa tarefa ficou ainda mais simples, deixando de lado inúmeras configurações em arquivos XML;

• Conjunto de componentes para interface de usuário (UI). Um dos pontos de destaque do JSF são os componentes UI capazes de simplificar a construção das páginas da aplicação, buscando trazer a forma de criar programas desktop para o desenvolvimento web. Estes componentes mantêm escondida a implementação de tarefas complexas, disponibilizando ao programador apenas tags com atributos que descrevem as entradas necessárias para o seu funcionamento;

...
Quer ler esse conteúdo completo? Tenha acesso completo