desenvolvimento produtivo com spring roo
DESCRIPTION
Apresentação sobre desenvolvimento produtivo para web com Java, utilizando o Spring Roo, na universidade Metodista durante a 9a SESTINFO.TRANSCRIPT
Globalcode – Open4education
Desenvolva aplicativos Java Web em pouco passos com Spring Roo
Eder Magalhãestwitter.com/edermag
www.yaw.com.br
SESTINFO 2012
Wednesday, May 16, 12
Globalcode – Open4education
AgendaMercado e oportunidades;Desafios em relizar uma idéia;
Características do Spring Roo; Demo I: primeiro projeto;
Tecnologias ao redor do Spring Roo;Demo II: relacionamento entre entidades;Como o Spring Roo gera código Java;
Demo III: Spring + JSF 2;Engenharia reversa;
Links;
Wednesday, May 16, 12
Globalcode – Open4education
Oportunidades
O Brasil é a bola da vez;
Mercado aquecido;
Startups brotando em todos os lugares;
Wednesday, May 16, 12
Globalcode – Open4education
Colocar em prática!
Realizar é uma idéia não é fácil;
A escolha da tecnologia é um dos desafios!
Wednesday, May 16, 12
Java é uma ótima escolha!Tecnologia madura e eficiente;
Adotada em grande escala;Utilizada em diversos cenários;
Oferece diversas tecnologias complementares;Viabiliza integração a outras linguagens;
Globalcode – Open4education
A escolha da tecnologia
Wednesday, May 16, 12
Java é uma ótima escolha!Tecnologia madura e eficiente;
Adotada em grande escala;Utilizada em diversos cenários;
Oferece diversas tecnologias complementares;Viabiliza integração a outras linguagens;
Globalcode – Open4education
A escolha da tecnologia
Wednesday, May 16, 12
Criar software de qualidade e eficiente;Escalável, seguro e rápido;
Ágil, a prova de mudanças no decorrer do projeto;E principalmente:
Desenvolver com produtividade!
Globalcode – Open4education
Algumas premissas
Wednesday, May 16, 12
O Spring Roo atende a essas premissas;Desenvolvimento web, utilizando Java, com alta produtividade;
Globalcode – Open4education
Spring Roo
Wednesday, May 16, 12
Text based: shell com comandos alto nível;Fácil de usar;
Elimina a burocracia de projetos Java;Utiliza algumas das melhores tecnologias (frameworks) Java;
Adota modelo de implementação baseado em patterns;Extensível;Integrado a IDE (Eclipse / Spring Tools Suite)
Globalcode – Open4education
Características do Roo
Wednesday, May 16, 12
Vamos experimentar o Roo;Alguma sugestão para desenvolvimento da aplicação Demo?
Globalcode – Open4education
Chega de teoria! Demo I
Wednesday, May 16, 12
roo> project --topLevelPackage br.com.yaw.pizzametoroo> persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
roo> entity jpa --class ~.model.Pizzaroo> field string --fieldName sabor --notNull --sizeMin 3roo> field number --type java.lang.Double --fieldName preco
roo> web mvc setuproo> controller all --package ~.webperform package
Globalcode – Open4education
Demo I: comandos executados
Wednesday, May 16, 12
Globalcode – Open4education
Tecnologias suportadas pelo Roo
Web MVCSecurityJavaScript
JPA
JUnitDojo
JSF
JSF
PrimeFaces
Wednesday, May 16, 12
Também agiliza o deploy e a implatanção;Geração de código é: Ativa ou Passiva;
Suporte a diferentes soluções para front-end;Framework web baseado em REST;
Conversor de Java para JSON e vice-versa;Gera artefatos para testes unitários e integrado;A qualquer momento pode ser desligado;
Globalcode – Open4education
Outras características
Wednesday, May 16, 12
Criar relacionamento com outra entidade;Analisar os artefatos gerado pelo Roo;
Globalcode – Open4education
Demo II: complementar nosso aplicativo
Wednesday, May 16, 12
roo> perform eclipseroo> entity jpa --class ~.model.Receita
roo> field string descricao
roo> focus --class ~.model.Pizza
roo> field reference --fieldName receita --type ~.model.Receita
roo> controller all --package ~.web#deploy pelo eclipse
Globalcode – Open4education
Demo II: comandos executados
Wednesday, May 16, 12
Globalcode – Open4education
Gerador de código
RooAdd-on
AspectJCompiler
Produto.javapreco: double
Produto.classpreco: double
getPreco()...setPreco(...)
Produto_Roo_JavaBean.aj
getPreco()...SetPreco(...)
AspectJ IDTs lê
lê
lê
escreve
escreve
Wednesday, May 16, 12
Utilizar a mesma idéia de aplicação, mas utilizando JSF 2 (+ Primefaces) como framework web;
Globalcode – Open4education
Demo III: Spring Roo com JSF 2
Wednesday, May 16, 12
roo> project --topLevelPackage br.com.yaw.pizzameto2roo> persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
roo> entity jpa --class ~.model.Pizzaroo> field string --fieldName sabor --notNull --sizeMin 3roo> field number --type java.lang.Double --fieldName preco
roo> web jsf setup --implementation ORACLE_MOJARRA --theme BLUESKY roo> web jsf all --package ~.jsfroo> perform package
Globalcode – Open4education
Demo III: comandos executados
Wednesday, May 16, 12
Gerar um cadastro a partir de uma tabela:
roo> project --topLevelPackage br.com.yaw.rev
roo> persistence setup --provider HIBERNATE
--database MYSQL --databaseName test
--hostName root --password root
roo> database reverse engineer --schema test
--package ~.model --includeTable “produto”
Globalcode – Open4education
Engenharia reversa!
Wednesday, May 16, 12
Projeto que modifica os tag files do Roo (Spring MVC), para utilizar JQuery ao invés do Dojo e Bootstrap (css);
http://github.com/edermag/roo-jquery
Globalcode – Open4education
Spring Roo + JQuery + BootStrap
Wednesday, May 16, 12
Globalcode – Open4education
Links
http://www.springsource.org/roo http://blog.globalcode.com.br/search/label/Spring%20Roo http://forum.springsource.org/forumdisplay.php?f=67 http://static.springsource.org/spring-roo/reference/html-
single/index.html http://blog.springsource.com/category/roo/ http://www.yaw.com.br/screencast http://github.com/edermag
Wednesday, May 16, 12