DevMedia
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.

Clique aqui para saber como acessar este post

1) Torne-se um assinante MVP e por apenas R$ 69,90 por mês você terá acesso completo a todos os posts. Assinar MVP

2) Adquira Créditos: comprando R$ 180,00 em créditos esse post custará R$ 1,20. Comprar Créditos

post favorito     comentários
Java Magazine 91 - Índice

Grails – Muito além do CRUD - Artigo Java Magazine 91

O artigo apresenta diversos recursos do Grails através do desenvolvimento de uma aplicação de exemplo, ilustrando assim o potencial do framework.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você poderia comentar o que não lhe agradou?

Confirmo meu voto negativo
Grails – Muito além do CRUD
Utilizando Grails no desenvolvimento de aplicações web

Aprenda com um exemplo prático a desenvolver aplicações web com alta produtividade utilizando esse framework que vai muito além do CRUD


De que se trata o artigo:
O artigo apresenta diversos recursos do Grails através do desenvolvimento de uma aplicação de exemplo, ilustrando assim o potencial do framework.

Para que serve:
Este artigo serve para demonstrar a implementação de diversas funcionalidades de uma aplicação web, realizada de maneira simples e produtiva utilizando o framework Grails.

Em que situação o tema é útil:
O framework Grails provê um ambiente já pré-configurado e integrado, permitindo ao desenvolvedor não perder tempo com configurações iniciais. Além disso, oferece diversos recursos que são comumente utilizados nas aplicações, de forma ágil e fácil, como a geração de CRUDs, acesso a dados, configuração de logs, filtros de segurança, Ajax etc.
Resumo DevMan:
O Grails é um framework MVC que utiliza a linguagem dinâmica Groovy e que roda sobre a máquina virtual Java (JVM). Sua arquitetura foi construída em cima de frameworks consolidados de mercado, como o Hibernate, Spring, Log4J e Sitemesh.
Além do CRUD, que é gerado facilmente pelo framework, outros recursos habitualmente usados em aplicações web são disponibilizados por este de forma bastante simples e produtiva, tais como criação de filtros de pesquisa, segurança, criação de taglibs, Ajax, gráficos e relatórios. Dessa forma o desenvolvedor pode manter o foco no domínio da aplicação, deixando de gastar tempo com arquiteturas complexas e questões de infraestrutura.


O desenvolvimento de aplicações web utilizando a plataforma Java EE tem crescido demasiadamente nos últimos anos, e para atender a essa demanda são oferecidas diversas opções de frameworks e bibliotecas. Neste contexto, a arquitetura proposta pela plataforma Java para aplicações web é bastante rica, porém muito complexa, dado que foi construída para atender a diferentes situações e propósitos.
Essa complexidade, aliada ao leque enorme de opções de frameworks, trazem alguns problemas à plataforma Java que a tornam pouco produtiva comparada a outras tecnologias web. Seguem alguns dos problemas percebidos pelo mercado na prática:
•    Leva-se muito tempo para configurar uma aplicação e deixá-la pronta para iniciar o desenvolvimento. Para isso, é necessário configurar frameworks, bibliotecas externas, arquivos XML, properties, etc.;
•    O processo de integrar os diversos frameworks na maioria das vezes não é trivial, pois existem versões que são incompatíveis umas com as outras;
•    Algumas funcionalidades, que existem em qualquer aplicação, são implementadas toda vez que uma nova aplicação é criada. Dentre estas podemos citar: desenvolvimento de CRUDs, configuração de logs, internacionalização, acesso a dados, relatórios, etc.;
•    Com certa frequência, muitos softwares são construídos com arquiteturas mais complexas do que realmente necessitam.

Para resolver tais problemas, surgiram no mercado frameworks como Ruby on Rails e Grails (Groovy on Rails). Ambos possuem os mesmos princípios, entretanto o diferencial do Grails é ser executado em cima da máquina virtual Java (JVM), aproveitando toda a maturidade e robustez da plataforma. Seguem suas principais características:
•    Utiliza os conceitos:
o    Convention over Configuration: Convenção ao invés de configuração significa obter mais produtividade através de convenções previamente definidas, aumentando a padronização e evitando configurações trabalhosas de XML, arquivos de propriedades, logs etc.;
o    Don't Repeat Yourself: O framework já oferece tarefas padrões do desenvolvimento de aplicações, como a geração de CRUDs, log pré-configurado etc.;
•    Utiliza a linguagem dinâmica Groovy, que estende a linguagem Java oferecendo suporte a closures, duck typing, facilidade na manipulação de listas, hashes, tipos primitivos, invocação de métodos dinamicamente etc.;
•    Fornece um ambiente de desenvolvimento completo pré-configurado e integrado, permitindo o foco no domínio da aplicação;
•    Sua arquitetura foi construída em cima de frameworks consolidados no mercado, tais como Hibernate, Spring, Sitemesh e Log4j.

A proposta desse artigo não é ensinar o básico do framework, e sim mostrar, através de um exemplo prático, a produtividade do Grails para outros aspectos comuns no desenvolvimento de uma aplicação. Filtros de busca, segurança, Ajax, gráficos e relatórios são alguns desses aspectos abordados pelo artigo. Os artigos Grails: do Groovy à Web – Partes 1 a 5 (Edições 75-79 da Java Magazine) são uma excelente opção para iniciar o aprendizado com o framework.

Closure: Uma closure é uma estrutura de código contendo um bloco de instruções que realiza uma determinada operação. Ela é mais abrangente que um método, pois sua estrutura pode ser atribuída a uma variável e também ser passada como parâmetro na chamada de outras funções. No exemplo abaixo entenderemos melhor esses conceitos. Definimos uma closure que retorna como resultado o parâmetro passado elevado ao quadrado e atribuímos esta closure à variável square. Depois definimos a função aplicaFuncaoMatematica, que recebe como parâmetro uma função e uma lista qualquer. A função aplicaFuncaoMatematica irá aplicar a função passada como parâmetro (em nosso caso, square) em cada elemento da lista.

//definindo a closure square
def square = {it*it}

//definindo a função matemática
def aplicaFuncaoMatematica = {funcao, lista ->

  def retorno = []
  for (obj in lista) {
    retorno += funcao(obj)
  }
    
  return retorno
}

// imprimindo o resultado na tela
println aplicaFuncaoMatematica(square, [1, 2, 3, 4])   // imprimirá [1, 4, 9, 16]

Duck typing: É o conceito de linguagens orientadas a objetos que define que: se um objeto de uma classe X se comporta como um objeto de uma classe ou interface Y, então este objeto pode ser tratado como um objeto do tipo Y sem ter que herdar ou implementar Y. No exemplo abaixo, a classe Bicicleta, embora não seja um veículo no mundo real, se comporta como um ao possuir o método mover(). Dessa forma, Bicicleta pode ser vista como um veículo. Então, podemos criar uma lista contendo diferentes instâncias de carros e bicicletas e chamar o método mover(), independente de termos uma superclasse comum ou uma interface definida com este método.

class Carro {
  public void mover() {
    println 'O carro se nove'
  }
}

class Bicicleta {
  public void mover() {
    println 'A bicicleta se nove'
  }
}

def veiculos = [new Carro(), new Bicicleta()]
for (v in veiculos) {
  v.mover()
}

A aplicação locacar – uma locadora de veículos
A aplicação que iremos utilizar como base para todos os nossos exemplos é uma locadora de veículos, que batizamos de “locacar”. Seu objetivo é sistematizar as operações de locação de veículos realizadas por diferentes usuários. A Figura 1 mostra a definição do domínio do problema.

 
Configurando o ambiente
Antes de iniciar o desenvolvimento da aplicação propriamente dita com o Grails, vamos explicar como instalar o framework, uma ferramenta de suporte e como configurá-la. Também vamos mostrar como criar a aplicação locacar e fazer alguns ajustes iniciais.
Instalando o Grails
A instalação do framework Grails é bastante simples. Segue uma descrição detalhada de como instalar e configurar o ambiente no sistema operacional Windows:
•    Baixe a última versão do Grails em www.grails.org/Download e descompacte-a em um diretório;
•    Configure a variável de ambiente JAVA_HOME apontando para o diretório raiz do JDK. Ex: D:\Documents and Settings\CYEW\Meus documentos\samuel\java\jdk1.6.0_14;
•    Configure a variável de ambiente GRAILS_HOME apontando para o diretório raiz de instalação do Grails. Ex: D:\Documents and Settings\CYEW\Meus documentos\samuel\java\grails\grails-1.3.4;
•    Configure a variável de ambiente PATH para adicionar as variáveis JAVA_HOME e GRAILS_HOME;
•    Execute grails help na linha de comando e verifique se é exibida uma lista com os comandos disponíveis pelo Grails.
Instalando a ferramenta
A ferramenta que iremos utilizar é a STS, uma IDE da Spring Source baseada na plataforma Eclipse. Segue um passo-a-passo para a sua instalação:
•    Baixe a última versão do STS em www.springsource.com/products/springsource-tool-suite-download e descompacte-a em um diretório;
•    Execute o programa [DIR-INSTALACAO]\springsource\sts-2.3.2.RELEASE\STS.exe e ao iniciar:
- Configure o proxy, caso necessário, em Window > Preferences > General > Network Perspectives. Selecione a opção Manual e informe HOST, usuário e senha do seu proxy;
- Configure o JDK em Window > Preferences > Java > Installed JREs para apontar para o JDK e não para um JRE (vem por default);
-  Acesse a opção de menu Help > Dashboard e verifique se aparecem os Feeds, pois indica que a configuração de internet está funcionando;
-  Ainda na tela de Dashboard, vá na aba Extensions e selecione as opções Grails e Groovy e depois clique em Install;
- Configure o GRAILS_HOME em Window > Preferences > Groovy > Grails apontando para o diretório de instalação do Grails;
- Acesse a opção de menu File > New > Grails Project e verifique se não é exibida alguma mensagem de erro. Caso esteja tudo correto, significa que o ambiente está devidamente configurado para a criação de projetos com o Grails.
"

A exibição deste artigo foi interrompida

Este post está disponível para assinantes MVP.



é Bacharel em Ciência da Computação pela Universidade Federal de Pernambuco. Possui a certificação SCJP. Desenvolve soluções em Java desde 2000 e atualmente trabalha na TI da Petrobras com aplicações voltadas para exploração e pro [...]

O que você achou deste post?
Publicidade
Serviços

Mais posts