Indo além na JVM com Grails
I workshop da computação - UFOP
• @fzampa
• fzampa@gmail.com
• Desenvolvedor / Líder Técnico
• www.eteg.com.br
• JEE
• Groovy
• Grails
• Exemplo
• JEE
• Groovy
• Grails
• Exemplo
JEE
JDK
Tomcat
Jars
XML
Configuração da IDE
Hibernate
JSF
Maven
• JEE
• Groovy
• Grails
• Exemplo
Groovy
• Dinâmica
• Linguagem Simples
• Poderosa
• Concisa
for (file in args) {
new File(file).eachLine { line ->
if (line =~ /palavra/) {
println line
}
}
}
int numero = 10String texto =
"Número: ${numero}"println texto
Objeto meuObjeto = construirObjeto()
println(meuObjeto?.propriedade?.valor)
import java.util.List;
import java.util.ArrayList;
public class Seletor{
private List<String> selecionaMenoresQue(List<String> palavras, int tamanho){
List<String> resultado = new ArrayList<String>();
for (String pal : palavras){
if (pal.length() <= tamanho){
resultado.add(pal);
}
}
return resultado;
}
public static void main(String[] args){
List<String> linguagens = new ArrayList<String>();
linguagens.add("Java");
linguagens.add("Scala");
linguagens.add("Groovy");
linguagens.add("Ruby");
Seletor seletor = new Seletor();
List<String> selecionadas =
seletor.selecionaMenoresQue(linguagens,5);
System.out.println("Total "+selecionadas.size());
for (String sel : selecionadas){
System.out.println(sel);
}
}
} http://www.slideshare.net/lucastex/grails-java-produtivo-e-divertido
def linguagens = ["Java", "Scala", "Groovy", "Ruby"]
def selecionadas = linguagens.findAll { it.size() <= 5 }
println "Total ${selecionadas.size()}"
selecionadas.each { sel ->
println sel
}
http://www.slideshare.net/lucastex/grails-java-produtivo-e-divertido
• JEE
• Groovy
• Grails
• Exemplo
http://grails.org/doc/latest/
Grails
Convenção sobre Configuração
Grails
Convenção sobre Configuração
Grails
Convenção sobre Configuração
Grails
Convenção sobre Configuração
Grails
Convenção sobre Configuração
Grails
Convenção sobre Configuração
Grails
Criar um projeto é fácil
Grails
Criar um crud é fácil
Grails
Criar uma consulta é fácil
Grails
Programar é prazeroso
Grails
• Pilha tecnológica bem definida
• Hibernate
• Spring
• Quartz
• JEE
• Log4J
Grails
• Roda no mesmo ambiente que aplicativos
JEE
Grails
• grails createApp ufopApp
Grails
• grails createDomainClass br.ufop.Aluno
Grails
• grails generateAll br.ufop.Aluno
Grails
• grails createController br.ufop.Aluno
Grails
• grails runApp
Grails
• GORM - Grails Object Relational Mapping
class Pessoa {
static constraints = {
nome(nullable: false, maxSize:30, blank: false)
endereco(nullable:true)
dataNascimento(nullable: false)
}
String nome
String endereco
Date dataNascimento
}
def pessoa = Pessoa.findByNome(“Felipe Zampa”)
def book = Book.findByTitle("The Stand")
book = Book.findByTitleLike("Harry Pot%")
book = Book.findByReleaseDateBetween(firstDate,
secondDate)
book = Book.findByReleaseDateGreaterThan(someDate)
book =
Book.findByTitleOrReleaseDateLessThan("Something",
someDate)
• JEE
• Groovy
• Grails
• Exemplo
Obrigado!

Indo além na jvm com grails - UFOP