Slides usado na apresentação realizada no TDC2009 em São Paulo (http://bit.ly/38wBwb). Trata de um problema específico no desenvolvimento de aplicação Web com a plataforma Java num período de transição de aplicações orientadas a requisições para orientadas a eventos (via JSF e Ajax). Sugere algumas soluções e como o Spring Web Flow resolve de maneira simples o problema apresentado.
Citation preview
1. Melhorando performance de JPA com Spring Web Flow Alberto
Lemos (Dr. Spock) Instrutor Globalcode Arquiteto de Software
2. Agenda
O problema : Aplicaes web orientadas a requisies ou
eventos?
A soluo
Uma soluo : Spring Web Flow
Consequnciase efeitos colaterais
Video demo
3. O problema
Como gerenciar o contexto de persistncia numa aplicao Web?
No modelo orientado a requisies: Open Session In View
Filter
No modelo orientado a eventos:Open Session In View Filter
(what?)
JSFtrouxe uma mudana de paradigma:Componentizaoe eventos
(limitado!)
JSF +Ajax=> Tratamento de eventos sofisticado!
4. A soluo
Manter o contexto de persistncia numescopo de conversao !
Escopo = Visibilidade + Tempo de vida
Conversao = Visibilidade/Usurio + (requisio < tempo de vida
< sesso)
Implementaes: Apache MyFaces Orchestra, Seam Framework eSpring
Web Flow
5. Uma Soluo: SWF
Um dos produtos do Spring Portifolio;
Turbina uma aplicao Web: Spring + JSF, Workflow, Ajax,
JavaScript, Spring MVC;
Implementa os escopos de 'conversation' e 'flow';
Gerencia um contexto de persistncia (HB ou JPA)nos escopos do
SWF;
Configurao por XML.
6. Consequncias e efeitos colaterais
Preserva o investimento na arquitetuta: JSF + Spring +
JPA;
Uso efetivo de cache;
Goodbye LazyInitializationException!
Suporte a paginao na camada de apresentao (view!);
Reduo q tede objetos na sesso web;
Nenhuma alterao nos componentes que usam
@PersistenceContext