[email protected]. O que é Grails? Grails é um framework open source para a construção de...

53

Transcript of [email protected]. O que é Grails? Grails é um framework open source para a construção de...

Page 2: 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.

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.

Page 3: 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.

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;

Page 4: 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.

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);

Page 5: 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.

Por que Grails?

Está licenciado sob a Apache License, Version 2.0.

Page 6: 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.

Criando uma aplicaçãograils create-app testapp

Page 7: 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.

Iniciando a aplicaçãocd testapp ; grails run-app

Page 8: 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.

Acessando a aplicação

Page 9: 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.

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

Page 10: 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.

Criando uma classe de domíniograils create-domain-class Trip

Page 11: 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.

Modificando a classe de domínio

Page 12: 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.

Modificando a classe de domínio

Page 13: 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.

Gerando um controller

grails create-controller Trip

Page 14: 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.

Modificando o controller para usar scaffolding dinâmico

Page 15: 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.

Modificando o controller para usar scaffolding dinâmico

Page 16: 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.

Iniciando a aplicação novamentegrails run-app

Page 17: 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.

Acessando a aplicação novamente

Page 18: 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.

Acessando a aplicação novamente

Page 19: 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.

Adicionando mais uma propriedade à classe de domínio

Page 20: 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.

F5/Refresh no browser

Page 21: 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.

Adicionando mais uma action ao controller

Page 22: 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.

Acessando a nova action criadahttp://localhost:8080/testapp/trip/myList

Page 23: 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.

Navegando pela aplicação

Page 24: 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.

Navegando pela aplicação

Page 25: 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.

Navegando pela aplicação

Page 26: 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.

Adicionando obrigatoriedade à propridade name

Page 27: 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.

Agora, ao tentar cadastrar Trip sem name

Page 28: 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.

Agora, ao tentar cadastrar Trip sem name

Page 29: 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.

Gerando o controller e as views para utilização sem scaffolding

grails generate-all testapp.Trip

Page 30: 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.

Iniciando a aplicação novamentegrails run-app

Page 31: 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.

E acessando a aplicação

Page 32: 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.

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).

Page 33: 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.

Entendendo o controller gerado

Page 34: 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.

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”.

Page 35: 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.

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.

Page 36: 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.

Entendendo a view gerada

Page 37: 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.

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.

Page 38: 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.

Entendendo o controller gerado

Page 39: 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.

Entendendo a view gerada

Page 40: 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.

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().

Page 41: 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.

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.

Page 42: 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.

Instalando e usando um plugingrails install-plugin transactional-controller

Page 43: 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.

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.

Page 44: 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.

Instalando e usando um plugin

Page 45: 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.

Iniciando a aplicação novamentegrails run-app

Page 46: 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.

Acessando a aplicação e navegando por ela

Page 47: 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.

E removendo o plugin, no caso de “imprevistos” ;-)

grails uninstall-plugin transactional-controller

Page 48: 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.

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.

Page 49: 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.

Alterando configurações específicas de um ambiente

Page 50: 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.

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

Page 51: 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.

Gerando o pacote (.war) para a implantaçãograils war

Page 52: 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.

Gerando o pacote (.war) para a implantação

Page 53: 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.

Fim

Obrigado.

[email protected]