Groovy e Grails  @lucas_aquiles
RoteiroGroovy                              Grails1.   O que é Groovy?                1.   O framework2.   GroovyShell / Gr...
GroovyO que é groovy?  ● linguagem dinâmica que roda na VM do Java  ● totalmente OO  ● compatibilidade com as libs Java  ●...
Groovyé a alegria do desenvolvedor java!
GroovyQuem programa em java é um dev Groovy?
Groovyum código java
Groovyum código groovy
Groovyum código groovy do jeito groovy
GroovyConsole interativo  Groovy shell       Groovy Console
GroovyTudo é um objeto            3.times{              println "opa!"            }
Groovy● Sobrescrevendo operadores  ○ plus  ○ minus● Mixing  ○
GroovySintaxe:● Classes:  ○ tipagem dinâmica  ○ get e set são injetados dinamicamente  ○ return e ; em métodos é opcional
Groovy● Lists  ○ def lista = [1,2,3]● Maps  ○ def map = [key:value]● Ranges  ○ def rang = 1...3
GroovySintaxe● Datas  ○ def hoje = new Date()● GStrings  ○ permite interploar string s entre aspas duplas    ■ "${var}"● C...
GroovySintaxe● Closure  ○ possui uma variável interna chamada "it"  def c = {     println it  }
GroovySintaxe● Elvis Operator  ○ "?." colocado antes da chamada de um atributo da    classe
GrailsO Framework
GrailsO framework   ● CoC  ● Baseado no projeto Rails e Django  ● Fácil integração com bibliotecas java  ● Encapsula frame...
GrailsE quando o erro vinha no java ....
GrailsInstalação e configuração  ○ define $GRAILS_HOME/bin na variável de ambiente     ○ Run!              grails run-app
GrailsO primeiro projetoDataSource.groovyBuildConfig.groovyConfig.groovyURLMapping.groovy                 web.xml
GrailsCadê meus DAOS? O primeiro projetomeus xml? DataSource.groovy BuildConfig.groovy Config.groovy URLMapping.groovy    ...
GrailsO Model  ○ representa uma classe persistente no projeto grails  ○ são POGOS  ○ não é necessário mapear com annotatio...
GrailsO Model  ○ constraints    ■ valida a entrada de dados de um atributo da       classe    ■ nullable, blank, size, max...
GrailsO Model  ○ validando objetos     ●   hasErrors() - verifica se existe algum erro de         validação na classe segu...
GrailsO Model    ○ relacionamentos      ■ hasMany                team hasMany players        ■ belongsTo                pl...
GrailsO Model  ○ métodos injetados dinamicamente    ● list()    ● get(id)    ● findAll()    ● save()    ● delete()
GrailsO Model  ○ finders dinâmicos
GrailsO Model  ● HQL: Hibernate Query Language     ○ produto.findAll("from Produto where       preco < :preco", [preco:1.9...
GrailsO Model  ● Comparadores    ○    Like         ■   produto.findAllByNomeLike(%vegan)    ○    LessThan         ■   prod...
GrailsO Model  ● Criteria     ○   NomeDaClass.createCriteria()  def resultado = criteria.list(){      categoria{eq(2)}  }
GrailsO Controller  ○ Responsável por receber uma requisição e executar    uma action  ○   actions: são closures que vão r...
GrailsO Controller  ○   render: responsável por enviar um tipo de resposta da requisição,      ex: uma view, um template, ...
GrailsO Controller  ○   scaffolding: permite montar uma estrutura de CRUD para uma      classe de domínio      ■   def sca...
GrailsServices  ○   services permitem centralizar uma lógica de negócio comum na      aplição  ○   um service é injetado d...
GrailsA View  ● arquivos *.gsp  ● baseado em taglibs semelhante as do jsp         ■ evita misturar código de programação c...
GrailsA View  ● loops      ○    <g:each in="${collectionName}" var="item"> </g:each>  ○   if / else      ■    <g:if test="...
GrailsA View  ● templates         templates por padrão começam com _ (underscore) antes  do nome do arquivo     ex: _templ...
Próximos SlideShares
Carregando em…5
×

Oficina groovy grails - infoway

943 visualizações

Publicada em

Oficina de Groovy e Grails apresentada na Infoway - e-health company

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
943
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
21
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Oficina groovy grails - infoway

  1. 1. Groovy e Grails @lucas_aquiles
  2. 2. RoteiroGroovy Grails1. O que é Groovy? 1. O framework2. GroovyShell / Groovy Console 2. Estrutura de um projeto Grails3. O mundo de objetos do Groovy 3. O Model a. sobrescrevendo operadores a. constraints b. Mixings i. validator4. Sintaxe nativa ii. valiando um objeto a. Classes, atributos b. relacionamentos b. List, Maps, Ranges i. hasMany c. GStrings ii. belongsTo d. Clousures iii. hasOne5. Elvis Operator c. static mapping d. GORM i. finders ii. criteria 4. o Controller a. scaffolding b. actions, params, renders, redirect 5. Services a. integrando um service a um controller 6. Views a. gsp taglib b. templates
  3. 3. GroovyO que é groovy? ● linguagem dinâmica que roda na VM do Java ● totalmente OO ● compatibilidade com as libs Java ● recursos do java5 são nativos ○ annotatios, collections, enum static import
  4. 4. Groovyé a alegria do desenvolvedor java!
  5. 5. GroovyQuem programa em java é um dev Groovy?
  6. 6. Groovyum código java
  7. 7. Groovyum código groovy
  8. 8. Groovyum código groovy do jeito groovy
  9. 9. GroovyConsole interativo Groovy shell Groovy Console
  10. 10. GroovyTudo é um objeto 3.times{ println "opa!" }
  11. 11. Groovy● Sobrescrevendo operadores ○ plus ○ minus● Mixing ○
  12. 12. GroovySintaxe:● Classes: ○ tipagem dinâmica ○ get e set são injetados dinamicamente ○ return e ; em métodos é opcional
  13. 13. Groovy● Lists ○ def lista = [1,2,3]● Maps ○ def map = [key:value]● Ranges ○ def rang = 1...3
  14. 14. GroovySintaxe● Datas ○ def hoje = new Date()● GStrings ○ permite interploar string s entre aspas duplas ■ "${var}"● Closure ○ são blocos de código que podem ser executados e passados como parametros em funções
  15. 15. GroovySintaxe● Closure ○ possui uma variável interna chamada "it" def c = { println it }
  16. 16. GroovySintaxe● Elvis Operator ○ "?." colocado antes da chamada de um atributo da classe
  17. 17. GrailsO Framework
  18. 18. GrailsO framework ● CoC ● Baseado no projeto Rails e Django ● Fácil integração com bibliotecas java ● Encapsula frameworks como: spring ioc, hibernate, sitemash, scaffolding
  19. 19. GrailsE quando o erro vinha no java ....
  20. 20. GrailsInstalação e configuração ○ define $GRAILS_HOME/bin na variável de ambiente ○ Run! grails run-app
  21. 21. GrailsO primeiro projetoDataSource.groovyBuildConfig.groovyConfig.groovyURLMapping.groovy web.xml
  22. 22. GrailsCadê meus DAOS? O primeiro projetomeus xml? DataSource.groovy BuildConfig.groovy Config.groovy URLMapping.groovy web.xml
  23. 23. GrailsO Model ○ representa uma classe persistente no projeto grails ○ são POGOS ○ não é necessário mapear com annotations ou arquivos xml grails create-domain-class br.com.infowaypi.MinhaClasse
  24. 24. GrailsO Model ○ constraints ■ valida a entrada de dados de um atributo da classe ■ nullable, blank, size, max, min ■ validator: recebe uma validação específica
  25. 25. GrailsO Model ○ validando objetos ● hasErrors() - verifica se existe algum erro de validação na classe seguido do validate() e do save() ● validate() - verifica as validações das constraints
  26. 26. GrailsO Model ○ relacionamentos ■ hasMany team hasMany players ■ belongsTo player belongsTo team ■ hasOne player hasOne teamem relacionamentos many to many é necessário que um dos lados deveassumir o belongsTo
  27. 27. GrailsO Model ○ métodos injetados dinamicamente ● list() ● get(id) ● findAll() ● save() ● delete()
  28. 28. GrailsO Model ○ finders dinâmicos
  29. 29. GrailsO Model ● HQL: Hibernate Query Language ○ produto.findAll("from Produto where preco < :preco", [preco:1.99]) ● max, min, sort, order
  30. 30. GrailsO Model ● Comparadores ○ Like ■ produto.findAllByNomeLike(%vegan) ○ LessThan ■ produto.findAllByPrecoLessThan(1.99) ○ IsNotNull ■ produto.findAllByCategoriaIsNotNull() ○ NotEqual ■ produto.findAllByDescricaoNotEqual(carne)
  31. 31. GrailsO Model ● Criteria ○ NomeDaClass.createCriteria() def resultado = criteria.list(){ categoria{eq(2)} }
  32. 32. GrailsO Controller ○ Responsável por receber uma requisição e executar uma action ○ actions: são closures que vão receber requisições e executar uma ação ○ params: variável do tipo map que carrega informações com os parametros da requisição
  33. 33. GrailsO Controller ○ render: responsável por enviar um tipo de resposta da requisição, ex: uma view, um template, um texto ■ view, template, model, text, var ○ redirect: redireciona a requisição de uma action ■ action, cotroller, uri, params
  34. 34. GrailsO Controller ○ scaffolding: permite montar uma estrutura de CRUD para uma classe de domínio ■ def scaffold = Produto;grails create-controller
  35. 35. GrailsServices ○ services permitem centralizar uma lógica de negócio comum na aplição ○ um service é injetado dinamicamente em um controller seguindo a convenção: nameService grails create-service serviceName
  36. 36. GrailsA View ● arquivos *.gsp ● baseado em taglibs semelhante as do jsp ■ evita misturar código de programação com marcação ■ <%= %>
  37. 37. GrailsA View ● loops ○ <g:each in="${collectionName}" var="item"> </g:each> ○ if / else ■ <g:if test="${item > 2}"> </g:if><g:else></g:else>
  38. 38. GrailsA View ● templates templates por padrão começam com _ (underscore) antes do nome do arquivo ex: _templateName.gsp <g:render template="templateName" var="${collection}" />

×