tech thursday -spring roo
DESCRIPTION
Apresentação sobre Spring Roo - Agence 05/08/2010TRANSCRIPT
![Page 1: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/1.jpg)
Spring Roo
![Page 2: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/2.jpg)
Spring Roo•O que é:
Ferramenta ágil para criação de aplicações Java.
•O que não é:
Não é um framework.
![Page 3: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/3.jpg)
Spring Roo
“Roo trabalha em background e cuida das coisas com as quais você não quer
se preocupar”.
![Page 4: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/4.jpg)
Spring Roo
•Usado apenas durante o desenvolvimento;
•100% Java; \o/
•Arquitetura extensível;
•Suporte a IDE’s.
![Page 5: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/5.jpg)
Tecnologias•Java EE;
•Spring (mvc, ioc, security);
•JPA (Hibernate, OpenJPA etc..);
•JSP;
•Aspectos;
•Lo4j, Maven, Eclipse ...
![Page 6: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/6.jpg)
AOP – Quê isso??•Programação Orientada a Aspectos ou
POA;
•Um paradigma de programação que permite separar e organizar o código de acordo com a sua importância para a aplicação (separation of concerns);
•Criado por Gregor Kiczales, da Xerox. Eles desenvolveram o AspectJ, a primeira e mais popular linguagem AOP.
![Page 7: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/7.jpg)
AOP – Quê isso??•Um aspecto pode alterar o
comportamento de um código pela aplicação de um comportamento adicional a um ponto de execução (join points). Um conjunto de join points é chamada de pointcut.
•AOP tem como objetivo a separação do código, permitindo que encapsule o código secundário em módulos separados do restante da aplicação.
![Page 8: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/8.jpg)
AOP – Quê isso??• Exemplo real: “… depois que o sistema estava
feito, e bem padronizado, foi levantado alguns requisitos pelo cliente, e uma das formas mais ágeis que tivémos foi adicionar comportamento em determinados joinpoints que eram candidatos ao problema. Foi simples, fácil, entregamos para o cliente na metade do prazo, e possibilitou ainda maior controle na manutenção.Não pode é ficar enchendo de código em AOP, mas tem coisas que se tornam muito mais fáceis quando se utiliza AOP. ”
![Page 9: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/9.jpg)
AOP – Quê isso??•Aspect-Oriented Programming (AOP)
complements Object-Oriented Programming (OOP) by providing another way of thinking about program structure;
•Em geral a AOP é utilizada para auxiliar a OOP em tarefas que não fazem parte do dominio/regras de negócio da aplicacao. Na prática se utiliza muito AOP para geração de Logs e gerenciamento transacional.
![Page 10: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/10.jpg)
AOP – Quê isso??
•Aprenda (bem!) OOP, depois pense em AOP.
•Esse paradigma pretendem superar algumas limitações da Programação Orientada a Objetos. Conclusão: A AOP é um complemento a POO e nunca irá substituir POO.
![Page 11: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/11.jpg)
AOP – Quê isso??• Aspecto é um complemento adequado para implementar
áreas de dispersão (crosscutting concerns). Essas áreas estão dispersas em vários componentes.
• Decomposição: os vários concerns do sistema são identificados e classificados como comuns ou crosscutting.
• Implementação: os concerns são implementados separadamente em classes (para os concerns comuns) e aspectos (para os crosscutting concerns).
• Recomposição: o sistema é recomposto à partir dos concerns implementados segundo regras de recomposição. Esta fase é chamada de weaving.
![Page 12: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/12.jpg)
AOPAspectJ
Pessoa_Roo_Entity.aj
Pessoa_Roo_JavaBean.aj
persist()
findAllPessoas()
getNome()
setNome()
Roo
Pessoa.java
String nome;
Compilador AspectJ
lê
Pessoa.class
persist()findAllPessoas()
getNome()
setNome()
String nome;
escreve
lê
escreve
escreve
![Page 13: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/13.jpg)
Coisas legais
•Sem overhead de performance!
•Sem overhead de memória!
•Sem “rastros” no deploy;
•Testes...
![Page 14: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/14.jpg)
Mais coisas legais
•Fácil remoção;
•Tecnologias open source;
•Em evolução;
•Fácil de usar e aprender;
•Geração de código passiva.
![Page 15: Tech Thursday -Spring Roo](https://reader034.vdocuments.site/reader034/viewer/2022051616/5579a2b7d8b42ac1148b48d0/html5/thumbnails/15.jpg)
Finishing!