Groovy e Grails Lucas Aquiles @lucas_aquiles
O Grails Inspiração Convenção ao invés de configuração
RubyonRails, Django, TurboGears Construído sobre gigantes Java / JEE
Spring Framework
Hiberante Reduz a complexidade
Aumento da produtividade
O Grails GORM Baseado no Hiberante Camada de visão GSP (Groovy Server Pages)
TagLib dinâmicas e SiteMesh Camada de controle: Baseado no Spring MVC / Spring Web Flow Dependency Injection (DI)  Spring Container Internacionalização (i18n)
 
Grails - Instalação e Configuração http://www.grails.org/Downloads Descompacte o arquivo e configure o GRAILS_HOME
“Hello Grails” grails create-app helloword
grais create-controller HelloWord
grails- app/controllers/helloword/HelloWordController.groovy
def helloword = { render “meu 123487 hello word!” }
Comandos - Grails Comandos básicos grails  create-app  AppDemo
grails  create-domain-class  br.edu.ifpi.MinhaClass
grails  create-controller  br.edu.ifpi.MinhaClass
grails  create-service  br.edu.ifpi.MinhaClass
grails  generate-all  // gera as views os controlleres
grails  schema-export  // expora o esquema de tabelas
grails  console  // abre o console do groovy
grails  clean  // limpa aterações
grails  run-app  // roda a aplicação
Grails - Estrutura Arquivos de configuração: DataSource.groovy Config.groovy Bootstrap.groovy internacionalização web.xml Libs adicionais: ex mysql-connector.jar
DataSource - Grails DataSource - Arquivo de configuração de banco de dados
Configurado por padrão com o HSQLDB Um banco de dados leve, usado para testes Possui três ambientes de trabalho Test, Production e Development
DataSource - Grails
M VC - Grails M odelo – Tudo que será usado como Entidade ficá aqui. /grails-app/domain/
grails create-domain-class
Separar a lógica de negócio do modelo
Cada classe de domínio corresponde à uma tabela do banco de dados relacional
M VC - Grails Constrains Usadas para determinar o tipo de entrada dos campos static constraints = { login  blank:false, size:1..20, matches:'[a-z0-9]'
password  blank:false, size:1..6
email  email:true, nullable:false }
M VC - Grails GORM  Hibernate por baixo dos panos
Permite fazer o mapeamento objeto / relacional do modelo orientado a objetos com o banco de dados relacional
Cada classe de domínio representa uma tabela do banco de dados
Uma instância representa uma linha da tabela

Groovy grails