Oficina groovy grails - infoway

  • View
    696

  • Download
    2

Embed Size (px)

DESCRIPTION

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

Transcript

  • 1. Groovy e Grails@lucas_aquiles

2. RoteiroGroovyGrails1. 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 nativaii. valiando um objeto a. Classes, atributosb. relacionamentos b. List, Maps, Rangesi. hasManyc. GStringsii. belongsTo d. Clousures iii. hasOne5. Elvis Operator c. static mappingd. GORMi. finders ii. criteria4. o Controllera. scaffoldingb. actions, params, renders, redirect5. Servicesa. integrando um service a um controller6. Viewsa. gsp taglibb. templates 3. GroovyO que groovy? linguagem dinmica que roda na VM do Java totalmente OO compatibilidade com as libs Java recursos do java5 so nativos annotatios, collections, enum static import 4. Groovy a alegria do desenvolvedor java! 5. GroovyQuem programa em java um dev Groovy? 6. Groovyum cdigo java 7. Groovyum cdigo groovy 8. Groovyum cdigo groovy do jeito groovy 9. GroovyConsole interativoGroovy shell Groovy Console 10. GroovyTudo um objeto3.times{println "opa!"} 11. Groovy Sobrescrevendo operadores plus minus Mixing 12. GroovySintaxe: Classes: tipagem dinmica get e set so injetados dinamicamente return e ; em mtodos 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 so blocos de cdigo que podem ser executados epassados como parametros em funes 15. GroovySintaxe Closure possui uma varivel interna chamada "it"def c = { println it} 16. GroovySintaxe Elvis Operator "?." colocado antes da chamada de um atributo daclasse 17. GrailsO Framework 18. GrailsO framework CoC Baseado no projeto Rails e Django Fcil integrao com bibliotecas java Encapsula frameworks como: spring ioc,hibernate, sitemash, scaffolding 19. GrailsE quando o erro vinha no java .... 20. GrailsInstalao e configurao define $GRAILS_HOME/bin na varivel 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.groovyweb.xml 23. GrailsO Model representa uma classe persistente no projeto grails so POGOS no necessrio mapear com annotations ouarquivos xmlgrails 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 validao especfica 25. GrailsO Model validando objetos hasErrors() - verifica se existe algum erro de validao na classe seguido do validate() e do save() validate() - verifica as validaes das constraints 26. GrailsO Model relacionamentos hasManyteam hasMany players belongsToplayer belongsTo team hasOneplayer hasOne teamem relacionamentos many to many necessrio que um dos lados deveassumir o belongsTo 27. GrailsO Model mtodos injetados dinamicamente list() get(id) findAll() save() delete() 28. GrailsO Model finders dinmicos 29. GrailsO Model HQL: Hibernate Query Language produto.findAll("from Produto where preco < :preco", [preco:1.99]) max, min, sort, order 30. GrailsO Model ComparadoresLike 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 Responsvel por receber uma requisio e executaruma action actions: so closures que vo receber requisies e executar umaao params: varivel do tipo map que carrega informaes com osparametros da requisio 33. GrailsO Controller render: responsvel por enviar um tipo de resposta da requisio,ex: uma view, um template, um texto view, template, model, text, var redirect: redireciona a requisio de uma action action, cotroller, uri, params 34. GrailsO Controller scaffolding: permite montar uma estrutura de CRUD para umaclasse de domnio def scaffold = Produto;grails create-controller 35. GrailsServices services permitem centralizar uma lgica de negcio comum naaplio um service injetado dinamicamente em um controller seguindo aconveno: nameServicegrails create-service serviceName 36. GrailsA View arquivos *.gsp baseado em taglibs semelhante as do jsp evita misturar cdigo de programao com marcao 37. GrailsA View loops if / else 38. GrailsA View templates templates por padro comeam com _ (underscore) antesdo nome do arquivo ex: _templateName.gsp