Last updated by
4 years ago
Page: Quick Start Portuguese, Version:1
English Version
A função irá solicitar o nome do seu projeto e então irá criar a estrutura do projeto como exibido abaixo:
A configuração de uma fonte de dados é simplesmente uma questão de alterar os valores para o banco de dados desejado, além de colocar jar do driver no diretório "<..>/lib". As propriedades definidas no nó dataSource são herdadas pelos filhos.A função irá solicitar que você informe o nome da classe de domÃnio. Uma classe de domÃnio é um artefato persistente, e por padrão, todas as suas propriedades são persistidas no banco de dados (Vá para a seção GORM (Grails Object Relational Mapping) para mais informações):
Neste ponto você pode querer criar alguns dados de teste. Uma forma fácil de fazer isso é criando e salvando os objetos de domÃnio na closure "init" da classe bootstrap da aplicação Grails, localizada em "<..>/grails-app/conf/BootStrap.groovy" (Obs.: na versão 0.5.6, e talves em outras, parece que este arquivo foi alterado para ApplicationBootStrap.groovy, com a declaração da classe também alterada para "class ApplicationBootStrap"):
(Observe que você pode criar e salvar os objetos aqui da mesma forma que faria nos controladores ou outras partes da aplicação em Grails; veja Grails Object Relational Mapping (GORM) para maiores informações sobre objetos de domÃnio.)
Certifique-se que você digitou "Livro" com a letra B maiúscula.Nota: Você deverá remover ou comentar o trecho "def index = { } " do arquivo gerado para que o scaffolding funcione.
Alternativamente, você pode utilizar o comando "grails generate-all", o qual irá criar todo o scaffolding ("modelo") para você, e deixará o controlador gerado em paz, ao invés de sobreescrevê-lo com o scaffolding padrão. Isto pode ser valioso no aprendizado.
Isto irá iniciar uma instância de um servidor Jetty rodando na porta 8080. Para iniciar o serviço em uma porta diferente, como por exempro 9090, utilize o comando {{grails -Dserver.port=9090 run-app}}. Para acessar a lista de livros, abra um navegador e digite:
Ou, sendo a closure "list" a ação padrão para o LivroController, você pode digitar:
{tip:title=Deixe o Grails mais Veloz}
O Grails pode parecer muito lento no modo de desenvolvimento, com páginas levando mais de um segundo para serem carregadas. Se isto se aplica à você, tente aumentar o tamanho máximo de memória heap através da variável de ambiente {{JAVA_OPTS}}, definindo seu valor para algo assim: '-Xmx512m' - isto irá definir o tamanho máximo de memória heap para 512Mb ao rodar o Grails, o que deve resultar em uma notável melhora no tempo de resposta.
{tip}
InÃcio Rápido
As informações que seguem tornam simples iniciar um projeto Grails. Também está disponÃvel um screencast com os passos para criar uma pequena aplicação.Criando um projeto Grails
Uma vez instalado (+) o Grails, você poderá utilizar uma função interna para criar novos projetos:grails create-app
%PROJECT_HOME%
+ grails-app
+ conf ---> localização de artefatos de configuração, como fontes de dados
+ hibernate ---> opcional; configurações do hibernate
+ spring ---> opcional; configurações do spring
+ controllers ---> localização de artefatos de controladores
+ domain ---> localização das classes de domÃnio
+ i18n ---> localização dos pacotes de mensagens para i18n
+ services ---> localização dos serviços
+ taglib ---> localização das tag libraries
+ util ---> localização das classes utilitárias especiais (ex., codecs, etc.)
+ views ---> localização das visões
+ layouts ---> localização dos layouts
+ lib
+ scripts ---> scripts
+ src
+ groovy ---> opcional; localização para arquivos fonte em Groovy
(para tipos outros que não estão em grails-app/*)
+ java ---> opcional; localização para arquivos fontes em Java
+ test ---> classes de testes geradas
+ web-app
+ WEB-INFConfigurando uma Fonte de Dados (Opcional)
A função "create-app", criou um artefato de fonte de dados do Grails para você no diretório "<..>/grails-app/conf", ele é chamado DataSource.groovy e possuà closures para cada um dos ambientes padrão: Development, TestData e Production (respectivamente: Desenvolvimento, Teste de Dados e Produção). Todos os exemplos que seguem funcionam no ambiente _development_. Para maiores informações sobre ambientes, veja Configuration#environments.Por padrão, cada fonte de dados é configurada com um banco em memória chamado HSQLDB (ótimo para testes, mas provavelmente não muito útil para ambientes reais), portanto este passo é opcional:dataSource {
pooled = false
driverClassName = "org.hsqldb.jdbcDriver"
username = "sa"
password = ""
}
// configuraçõs especÃficas do ambiente
environments {
development {
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop','update'
url = "jdbc:hsqldb:mem:devDB"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:mem:testDb"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:file:prodDb;shutdown=true"
}
}
}Criando uma Classe de DomÃnio
Tenha certeza que você está no diretório raiz do seu projeto (por exemplo "meu-projeto") digitandocd meu-projetograils create-domain-class
class Livro {
String titulo
String autor
}class BootStrap { def init = { servletContext ->
// Cria alguns dados de teste
new Livro(autor:"Stephen King",titulo:"The Shining").save()
new Livro(autor:"James Patterson",titulo:"Along Came a Spider").save()
}
def destroy = {
}
}Crie um controlador
Os Controladores são centrais para as aplicações em Grails, eles tratam as requisições web e URLs do mapa de requisição para uma classe de controlador em uma closure junto à classe.Execute o comando "grails create-controller" e digite o nome do controlador. Em nosso exemplo digitamos "Livro", o que gerou um controldor chamado {{grails-app/controllers/LivroController.groovy}}. Abra este controlador e altere-o como mostrado a seguir para que seja utilizado o Scaffolding dinâmico, o qual irá gerar dinamicamento sua aplicação em tempo de execução:class LivroController {
def scaffold = Livro
}Iniciando o Grails
Para iniciar sua aplicação com Grails, execute o seguinte comando:grails run-app
http://localhost:8080/meu-projeto/livro/list
http://localhost:8080/meu-projeto/livro