Your SlideShare is downloading. ×
Oficina  groovy grails - infoway
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Oficina groovy grails - infoway

646
views

Published on

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

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

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
646
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Groovy e Grails @lucas_aquiles
  • 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. 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. Groovyé a alegria do desenvolvedor java!
  • 5. GroovyQuem programa em java é um dev Groovy?
  • 6. Groovyum código java
  • 7. Groovyum código groovy
  • 8. Groovyum código groovy do jeito groovy
  • 9. GroovyConsole interativo Groovy shell Groovy Console
  • 10. GroovyTudo é um objeto 3.times{ println "opa!" }
  • 11. Groovy● Sobrescrevendo operadores ○ plus ○ minus● Mixing ○
  • 12. GroovySintaxe:● Classes: ○ tipagem dinâmica ○ get e set são injetados dinamicamente ○ return e ; em métodos é opcional
  • 13. Groovy● Lists ○ def lista = [1,2,3]● Maps ○ def map = [key:value]● Ranges ○ def rang = 1...3
  • 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. GroovySintaxe● Closure ○ possui uma variável interna chamada "it" def c = { println it }
  • 16. GroovySintaxe● Elvis Operator ○ "?." colocado antes da chamada de um atributo da classe
  • 17. GrailsO Framework
  • 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. GrailsE quando o erro vinha no java ....
  • 20. GrailsInstalação e configuração ○ define $GRAILS_HOME/bin na variável de ambiente ○ Run! grails run-app
  • 21. GrailsO primeiro projetoDataSource.groovyBuildConfig.groovyConfig.groovyURLMapping.groovy web.xml
  • 22. GrailsCadê meus DAOS? O primeiro projetomeus xml? DataSource.groovy BuildConfig.groovy Config.groovy URLMapping.groovy web.xml
  • 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. 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. 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. 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. GrailsO Model ○ métodos injetados dinamicamente ● list() ● get(id) ● findAll() ● save() ● delete()
  • 28. GrailsO Model ○ finders dinâmicos
  • 29. GrailsO Model ● HQL: Hibernate Query Language ○ produto.findAll("from Produto where preco < :preco", [preco:1.99]) ● max, min, sort, order
  • 30. GrailsO Model ● Comparadores ○ Like ■ produto.findAllByNomeLike(%vegan) ○ LessThan ■ produto.findAllByPrecoLessThan(1.99) ○ IsNotNull ■ produto.findAllByCategoriaIsNotNull() ○ NotEqual ■ produto.findAllByDescricaoNotEqual(carne)
  • 31. GrailsO Model ● Criteria ○ NomeDaClass.createCriteria() def resultado = criteria.list(){ categoria{eq(2)} }
  • 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. 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. GrailsO Controller ○ scaffolding: permite montar uma estrutura de CRUD para uma classe de domínio ■ def scaffold = Produto;grails create-controller
  • 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. GrailsA View ● arquivos *.gsp ● baseado em taglibs semelhante as do jsp ■ evita misturar código de programação com marcação ■ <%= %>
  • 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. 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}" />