1 / 53

daniel@techdm

daniel@techdm.com. O que é Grails?. Grails é um framework open source para a construção de aplicações Java/JEE. Ou seja, aplicações “enterprise” que executam em um Web Container ou Application Server. Por que Grails?.

emory
Download Presentation

daniel@techdm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. daniel@techdm.com

  2. O que é Grails? Grails é um framework open source para a construção de aplicações Java/JEE. Ou seja, aplicações “enterprise” que executam em um Web Container ou Application Server.

  3. Por que Grails? Baseia-se em frameworks como Rails e Django, sendo guiado pelas mesma práticas e princípios, como CoC (convention over configuration) e DRY (don't repeat yourself); É full stack e construído sobre tecnologias maduras como Groovy, ANT, Log4J, Sitemesh, Spring Framework e Hibernate, entre outras; É extensível via plugins;

  4. Por que Grails? Dispõe de ampla variedade de plugins (já implementados e testados) para a realização das mais diferentes tarefas; É compatível com a especificação JEE; Permite a migração incremental de outras aplicações “legado”; Dispõe de dynamic or static scaffolding para operações CRUD (Create, Read, Update and Delete);

  5. Por que Grails? Está licenciado sob a Apache License, Version 2.0.

  6. Criando uma aplicação grails create-app testapp

  7. Iniciando a aplicação cd testapp ; grails run-app

  8. Acessando a aplicação

  9. Diretórios mais importantes da aplicação grails-app - diretório base para os artefatos Grails conf - arquivos de configuração controllers - web controllers (C do MVC) domain - classes de domínio services - camada de serviço views - .jsp, .gsp, .ftl (V do MVC) lib - bibliotecas de suporte (.jar) src - classes Groovy e Java de suporte para a aplicação scripts - Gant scripts test - testes unitários e integrados

  10. Criando uma classe de domínio grails create-domain-class Trip

  11. Modificando a classe de domínio

  12. Modificando a classe de domínio

  13. Gerando um controller grails create-controller Trip

  14. Modificando o controller para usar scaffolding dinâmico

  15. Modificando o controller para usar scaffolding dinâmico

  16. Iniciando a aplicação novamente grails run-app

  17. Acessando a aplicação novamente

  18. Acessando a aplicação novamente

  19. Adicionando mais uma propriedade à classe de domínio

  20. F5/Refresh no browser

  21. Adicionando mais uma action ao controller

  22. Acessando a nova action criada http://localhost:8080/testapp/trip/myList

  23. Navegando pela aplicação

  24. Navegando pela aplicação

  25. Navegando pela aplicação

  26. Adicionando obrigatoriedade à propridade name

  27. Agora, ao tentar cadastrar Trip sem name

  28. Agora, ao tentar cadastrar Trip sem name

  29. Gerando o controller e as views para utilização sem scaffolding grails generate-all testapp.Trip

  30. Iniciando a aplicação novamente grails run-app

  31. E acessando a aplicação

  32. Entendendo o controller gerado Se abrirmos o controller novamente, podemos entender o que acontece quando a action “save” é invocada (botão create da tela de cadastro de Trip).

  33. Entendendo o controller gerado

  34. Entendendo o controller gerado Uma nova instância de Trip é criada a partir de um mapa chamado “params” (esse mapa contém todos os parâmetros e respectivos valores enviados na requisição); Há uma tentativa de salvar essa Trip. Se a Trip pôde ser salva, uma mensagem de sucesso é exibida e o usuário é redirecionado para a action “show”; Se a Trip não pôde ser salva, o usuário é encaminhado para a view “create”.

  35. Entendendo o controller gerado Ao encaminhar para a view create, o controler indica que o model conterá um Map com um elemento sob a chave 'tripInstance'. Se observarmos essa view, saberemos como esse elemento é acessado. No caso, a view gerada é um gsp (Groovy Server Page), mas poderíamos usar jsp, ftl (FreeMarker template) ou qualquer outra forma de view suportada pelo Spring MVC.

  36. Entendendo a view gerada

  37. Entendendo a view gerada Na parte marcada do create.gsp, vemos que a grails tag g:hasErrors é usada para verificar se há algum erro associado à tripInstance. Se houver, a grails tag g:renderErrors é usada para exibir a lista de erros. É isso que gera a mensagem quando não preenchemos o valor para o campo name.

  38. Entendendo o controller gerado

  39. Entendendo a view gerada

  40. Entendendo a classe de domínio Voltando um pouco ao controller, vemos que ele faz uso de métodos como Trip.save(), Trip.get() e Trip.list(). Esses são métodos dinâmicos adicionados pelo GORM (Grails' object relational mapping), cuja implementação padrão é feita sobre o Hibernate. São esses métodos que irão, eventualmente, inserir os dados no banco de dados, alterá-los ou consultá-los. Outro método que vale destacar é o DomainClass.find().

  41. Instalando e usando um plugin Uma vez que a recomendação é que todo acesso a dados seja feito a partir de uma classe de serviço (que conterá a lógica de negócio de aplicação e também garantirá a transacionalidade da ação), mas queremos manter a aplicação simples, vamos instalar um plugin que torna as “actions” dos controllers transacionais: É o transactional-controller.

  42. Instalando e usando um plugin grails install-plugin transactional-controller

  43. Instalando e usando um plugin De acordo com a documentação do plugin, precisamos indicar as “actions” que serão transacionais. Vamos marcar a save e a update, ainda que, nessa aplicação de exemplo, isso não seja realmente necessário.

  44. Instalando e usando um plugin

  45. Iniciando a aplicação novamente grails run-app

  46. Acessando a aplicação e navegando por ela

  47. E removendo o plugin, no caso de “imprevistos” ;-) grails uninstall-plugin transactional-controller

  48. Alterando configurações específicas de um ambiente Agora suponha que o banco de dados de produção não seja do mesmo tipo que o de desenvolvimento (no caso do nosso exemplo, o hsqldb que acompanha o Grails) ou não seja acessado da mesma forma. Para prepararmos nossa aplicação para produção, poderíamos (por exemplo), incluir o driver JDBC necessário no diretório lib e modificar a seção “production” do arquivo DataSource.groovy.

  49. Alterando configurações específicas de um ambiente

  50. Gerando o pacote (.war) para a implantação Uma vez que a aplicação já esteja testada (todos os testes automáticos e manuais tenham sido executados com sucesso) e validada, podemos gerar o .war para ser implantado em produção

More Related