Atenção: esse artigo tem um vídeo complementar. Clique e assista!
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.
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;
...