semana_groovy

Semana Groovy 11!

Links da semana

10 hot Programming Languages that are on the rise – A Computer World acaba de publicar uma lista com as 10 linguagens de programação que mais crescem. Adivinhem quem está na lista? Nosso velho amigo Groovy! – http://www.computerworld.com/slideshow/detail/149179/10-hot-programming-languages-that-are-on-the

Introducing to Messaging with Spring JMS – http://xpadro.blogspot.com.br/2013/07/introduction-to-messaging-with-spring.html

Pesquisa da Rebel Labs sobre quais os frameworks web mais usados pelos desenvolvedores na qual Spring MVC domina – http://zeroturnaround.com/rebellabs/top-4-java-web-frameworks-revealed-real-life-usage-data-of-spring-mvc-vaadin-gwt-and-jsf/

Experiences in using Grails in a micro services architecture – Apresentação interessante mostrando a experiência do palestrante, Jeck Beck (não é o guitarrista) aplicando Grails neste padrão arquitetural – https://www.youtube.com/watch?v=wF8gjfh0Kyw . Não sabe o que é micro serviços? Já escrevi sobre isto no blog: http://www.itexto.net/devkico/?p=1755

Discussão interessante

Grails Brasil – Como usar um marshaller customizado de JSON com Grails? Surgiu esta discussão na comunidade ( http://grailsbrasil.com.br/post/show/2735 ) que terminou com uma inidcação post com uma solução bastante interessante para o problema: http://compiledammit.com/2012/08/16/custom-json-marshalling-in-grails-done-right/

Lançamentos

Spring Framework 4.1 RC2 – http://spring.io/blog/2014/08/15/spring-framework-4-1-rc2-released

Spring Data Evans RC – O que incluirá melhorias para todos os subprojetos do Spring Data, como MongoDB, Redis, JPA, Neo4J, etc. – https://spring.io/blog/2014/08/13/first-release-candidate-of-spring-data-release-train-evans-available

Posts clássicos

Como evoluiu a componentização de software no decorrer do tempo? O que é um componente? Quer conhecer as abordagens adotadas em outras plataformas, como C, .net, Java, Delphi e VB? Esta tese de mestrado é sobre isto: assunto que deve estar sempre presente na mente de todo desenvolvedor: http://www.polberger.se/components/read/

E já que o assunto é componentização, já ouviu falar em OSGi? Para os que não conhecem, OSGi é uma tecnologia bem madura (surge em 1999) que nos provê um mecanismo de modularização fantástico para a plataforma Java. Imagine poder trocar partes do seu sistema com este em execução ou prover uma arquitetura baseada em plugins para seus projetos, exatamente como no projeto Eclipse (que é baseado em OSGi)…

Estava previsto seu suporte na versão 2.0 do Grails ( https://jira.grails.org/browse/GRAILS-2221 ), mas este foi removido (uma pena na minha opinião). Se quiser ver como funciona, recomendo este tutorial em PDF: http://www.knopflerfish.org/tutorials/osgi_tutorial.pdf . O texto presente na Wikipedia também é um bom começo: http://en.wikipedia.org/wiki/OSGi

Tem material que gostaria de divulgar aqui?

Semana Groovy tem por objetivo mostrar o que ocorre de novidade com as tecnologias Groovy, Grails e Spring (e Java em geral). O ideal é que eu fale sobre coisas que ocorram em nosso país (ou em língua portuguesa). Tendo novidades, como, por exemplo, um curso que você vá ministrar, eventos ou coisas similares, basta entrar em contato comigo por e-mail, ok?

Hiato de uma semana

Como havia dito na Semana Groovy 10 (http://www.itexto.net/devkico/?p=1934) terei de viajar a trabalho. Saio dia 17 para voltar em 30 de agosto. Sendo assim, como terei um acesso bastante precário à Internet, a edição do dia 25/8/2014 tem 90% de chances de não sair. Mas a da semana seguinte com certeza sairá!

Assine nossa newsletter!

Quer receber esta newsletter por e-mail no momento em que for publicada? Basta se inscrever preenchendo este formulário!

semana_groovy

Semana Groovy 10!

Posts da semana

Como desabilitar o @Grab em Groovy – http://glaforge.appspot.com/article/disable-grab-with-a-global-ast-transformation

Não sabe pra que serve esta anotação @Grab? Ela faz parte do Grape, uma interessantíssima feature do Groovy que usamos para resolver dependências (tal como no Maven, só que de uma maneira bem mais interessante) em scripts. Para saber mais, sugiro que leia a documentação oficial: http://groovy.codehaus.org/Grape

Como usar configurações do Spring em um projeto Grails – http://mrhaki.blogspot.fr/2014/08/grails-goodness-use-spring-java.html

This week in Spring – muitos posts interessantes relacionados ao Spring Framework (e uma menção ao /dev/Kico!) – http://spring.io/blog/2014/08/06/this-week-in-spring-august-5th-2014

Lançamentos

Grails 2.4.3 – https://grails.org/2.4.3+Release+Notes

Ratpack 0.9.7 – http://www.ratpack.io/versions/0.9.7

Spring Boot 1.1.5 – http://spring.io/blog/2014/08/07/spring-boot-1-1-5-released

Discussões interessantes

Grails Brasil: como lidar com os upgrades do Grails? - http://grailsbrasil.com.br/post/show/2717

Grails Brasil: como usar o Spring Security sem o plugin? Um experimento que estou bastante tentado a fazer, convido vocês a tentarem também. –  http://grailsbrasil.com.br/post/show/2729

Por que Groovy é escrito em Java ao invés de ser escrito em… Groovy? – Discussão interessantíssima para quem curte desenvolvimento de compiladores – http://groovy.329449.n5.nabble.com/Why-is-Groovy-written-in-java-instead-of-Groovy-td5720730.html

Posts clássicos

This Developer’s Life – Esta semana descobri este fantástico podcast em inglês que trata dos aspectos humanos envolvendo esta nossa “vida de desenvolvedor”. Infelizmente parece que pararam de gravar episódios, mas os que ouvi possuem profundidade ímpar. Os assuntos vão desde demissão, passando por fama, empregos ruins, brigas em grupos de discussão e muito mais. Sem exagero algum, mudou diversas das minhas opiniões sobre a vida e minha carreira. Espero que gostem: http://thisdeveloperslife.com/

Weld: CDI Reference Implementation – escrevendo um artigo sobre Spring Boot voltei a ler aquela que, acredito, seja a melhor documentação que já li sobre injeção de dependências: a documentação de referência do Weld, que é a implementação de referência do CDI. O melhor texto que já li falando sobre escopos de injeção. http://docs.jboss.org/weld/reference/2.0.3.Final/en-US/html/

Possível hiato

Dia 17 viajarei a trabalho e só volto no dia 30. Sendo assim há a possibilidade de não ser publicada a Semana Groovy 11 nos dias 18 e 25, mas prometo que me esforçarei ao máximo para que isto não ocorra, ok?

Java Magazine 130

Falando de Spring 4.0 na Java Magazine 130

Acaba de sair a edição 130 da Java Magazine na qual há um artigo que escrevi sobre as novidades do Spring 4.0. Nele falo sobre a evolução do framework e detalho alguns aspectos desta nova versão como, por exemplo, o suporte a WebSocket,  Spring Boot (em ambos os casos mostro exemplos rápidos de uso das tecnologias), Groovy e mais alguns aspectos.

Detalhes do artigo podem ser vistos neste link. Meu próximo artigo será sobre Spring Boot, até lá!

semana_groovy

A Semana Groovy 9!

Curiosidade: por que o comando grails upgrade foi marcado como obsoleto (deprecated)?

Os usuários mais antigos do Grails com certeza se lembram do comando grails upgrade, que fazia a atualização do framework em nossos projetos. No entanto, recentemente este foi marcado como obsoleto (deprecated). Curioso, perguntei à equipe de desenvolvimento a razão por trás disto e qual seria o caminho a seguir daqui para frente.

A resposta que obtive de Graeme Rocher foi interessante: “conforme o número de plugins e a complexidade do processo de atualização foi aumentando, percebemos que não seria possível satisfazer as expectativas dos usuários, razão pela qual mudamos nosso modo de agir, descrevendo na documentação como os usuários deveriam executar esta tarefa. Com isto, o comando upgrade apenas mudava o número da versão do Grails, o que o tornou desnecessário, visto que já existia o script set-grails-version”.

Então, o caminho agora será seguir o passo a passo presente na documentação quando precisarmos atualizar o Grails, e o comando upgrade só será útil no processo de atualização de versões mais antigas do Grails para mais novas (anteriores à 2.2).

Link para a discussão: https://groups.google.com/forum/#!topic/grails-dev-discuss/PK51YzRFo_E

Discussão interessante: a performance de Groovy

Iniciou-se na lista de usuários Groovy uma discussão chamada “Advocating Groovy vs Java” em que foi questionada a performance da linguagem. Diversos argumentos interessantes foram incluídos. Vale muito à pena ler (e acompanhar) esta thread pois ela mostra alguns dos caminhos que estão sendo tomados no desenvolvimento da linguagem para melhorar ainda mais sua performance: http://groovy.329449.n5.nabble.com/Advocating-Groovy-vs-Java-td5720573.html

Groovy ganha o Geeks Choice Awards da Rebel Labs

A Rebel Labs todo ano lança o concurso “Geeks Choice Awards”, no qual desenvolvedores dizem quais são suas ferramentas de desenvolvimento favoritos. Na categoria JVM Language o vencedor deste ano foi Groovy!

http://glaforge.appspot.com/article/groovy-receives-geek-choice-award

Java 8u11 e 7u65 podem afetar o funcionamento do seu código Groovy

Esta semana saiu uma importante matéria na InfoQ informando que os dois últimos updates do Java podem interferir no funcionamento de diversas ferramentas, incluindo o Groovy (https://jira.codehaus.org/browse/GROOVY-6951). O problema está no sistema de verificação de bytecode da JVM. A solução para o problema é bastante simples: basta incluir o parâmetro -noverify na hora em que for iniciar a JVM. Mais detalhes em http://www.infoq.com/news/2014/08/Java8-U11-Broke-Tools

Lançamentos

Groovy 2.3.6 –  Um release bem pequeno, que apenas corrige dois bugs da linguagem. Seu release notes pode ser acessado neste link: https://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10242&version=20540

Griffon 2.0.0 RC1 – http://griffon-user.3225736.n2.nabble.com/ANN-Griffon-2-0-0-RC1-released-td7578844.html

Ferramenta útil: Japicamp

Já passou por aquela situação na qual precisa saber quais as diferenças no conteúdo de dois arquivos JAR? Lhes apresente o Japicamp, que faz justamente isto: https://github.com/siom79/japicmp

Há também um plugin para Gradle que pode lhes ser útil: https://github.com/melix/japicmp-gradle-plugin

Links da semana

O que há de novo no Spring 4.0? Escrevi um post no qual exponho aquelas que considero ser as principais mudanças no Spring Framework da versão 3.x para a 4.0. É muito importante que desenvolvedores Groovy/Grails leiam este post por duas razões: 1) Grails é uma aplicação Spring MVC, 2) A tendência da Pivotal em trazer mais coisas do Groovy e Grails para o Spring e vice-versa – http://www.itexto.net/devkico/?p=1919

Grails, AngularJS and Asset Pipeline – Post de Craig Burke no qual é exposto como usar o AngularJS junto com o plugin Asset Pipeline: http://www.craigburke.com/2014/07/24/angular-grails-asset-pipeline.html

Tutorial de Gradle – excelente para que você possa avaliar a ferramenta: http://rominirani.com/2014/07/28/gradle-tutorial-series-an-overview/

Apresentações interessantes: Greach

Para os que não conhecem, Greach (http://greach.es/) é um evento que ocorre anualmente na Espanha sobre Groovy e tecnologias relacionadas. O canal do evento no YouTube é muito rico e vale à pena fazer parte das suas inscrições: https://www.youtube.com/user/TheGreachChannel

Agora vamos a algumas destas apresentações:

Why reactive architecture will take over the world by Steve Pember – https://www.youtube.com/watch?v=0oovNxZnkAE

Startup Lesson learned from rolling a Grails App to millions users by James Page – buscava um excelente case de Grails? Aí está um: https://www.youtube.com/watch?v=hoG0YxCmDqQ

Assine nossa newsletter!

Quer receber esta newsletter por e-mail no momento em que for publicada? Basta se inscrever preenchendo este formulário!

PS: uma amostra visual rápida do que está por vir. ;)

logo_itexto1

spring_logo

O que muda no Spring 4.0?

thumb_beta_spring_largeComo escrevi um livro sobre o Spring Framework, não é raro que eu receba perguntas pelas redes sociais a respeito da versão 4.0. Meu livro ainda trata da versão 3.2, então aquilo que disse nele ainda é válido? Resposta rápida: em 100% dos casos, sim.

As mudanças superficiais no Spring são raras: se seu projeto é baseado na versão 3.2 do framework, a migração para o 4.0 é muito tranquila. Só é necessário alterar as dependências do seu projeto para a nova versão na esmagadora maioria das vezes. Neste post irei falar sobre as mudanças que considero serem as mais importantes.

(não sabe o que é o Spring Framework? Eu tenho um guia gratuito que pode te ajudar. Clique aqui!)

Pivotal entra em cena

Este é o primeiro grande release do Spring sob a supervisão da Pivotal. Se havia receio a respeito da competência desta nova empresa, este se transformou em alegria, pois o trabalho que fizeram foi simplesmente fantástico!

Um dos principais objetivos da empresa foi melhorar a experiência de início de projeto com o Spring, então reformularam completamente o site oficial (http://www.spring.io) . As mudanças vão muito além do layout: incluíram uma série de guias que ajudam os desenvolvedores a iniciarem da maneira mais rápida possível seus projetos baseados tanto no Spring como também nas tecnologias baseadas neste framework.

Os guias são muito diretos: fáceis de ler e sem rodeios. Precisa implementar um servidor REST? Quer usar o GORM? Quer começar algo? É enorme a possibilidade de haver um guia pronto para que você possa por a mão na massa rápido. Vale muito à pena conferir os guias: http://spring.io/guides. Além disto em cada subprojeto há um guia que te mostra o básico da tecnologia em questão.

Rejuvenescendo o Spring

Classes, métodos e pacotes marcados como obsoletos

Conforme o tempo passa todo projeto começa a sofrer com seu código legado. O pessoal da Pivotal então tomou uma decisão corajosa: marcou como obsoletas diversas classes, métodos e pacotes que compunham o código fonte do Spring. Você pode ver a lista completa neste link. Se seu projeto usa classes internas do framework (o que é uma péssima prática em qualquer framework), então algumas classes vão ter de ser substituídas em sua aplicação (você foi avisado!).

Do 3.2 para o 4.0 seu projeto funcionará perfeitamente, mas a partir da versão 4.1 é bem provável que diversas destas classes não venham mais com o framework.  Em um primeiro momento soa desagradável esta remoção em massa, mas na prática é vital para garantir a longevidade do projeto. Menos código legado leva a um custo menor de manutenção e possibilita um foco maior na inclusão de recursos realmente importantes para o desenvolvimento de novos projetos e para atender necessidades que estão surgindo.

Olhando para a frente: suporte total ao Java 8, Java EE 6 e 7

O Spring 4.0 foi lançado antes do Java 8 e já vinha com suporte total à nova versão da linguagem. Um ponto importante é que agora a versão mínima do Java é a 6.0: natural dado que o Java 5 já tem 10 anos (saiu em 2004). Você já pode tirar proveito de recursos como lambdas, referências a métodos, suporte total à nova API de tempo (java.time).

Do lado Java EE é importante mencionar que agora a versão mínima da especificação será a seis. Muitas dependências de terceiros (3rd party dependences) também sofreram com isto. A partir da versão 4.0 do Spring  estas devem ter sido desenvolvidas a partir de 2010. Exemplos interessantes: Hibernate 3.6+, EhCache 2.1+ e Groovy 1.8+.

O objetivo disto tudo é claro: estas medidas nos deram mais uns vinte anos de Spring (no mínimo) pois o custo de manutenção de tecnologias legadas daqui pra frente foi significativamente reduzido.

Groovy cada vez mais presente

groovylogo

Este é um ponto que muito me alegra: Groovy está muito mais presente no Spring 4.0. Nós que programamos em Grails já usamos a linguagem para declarar nossos beans (nos raríssimos casos em que isto é necessário) desde a versão 0.x do framework. É uma DSL bastante prática mas que até então estava disponível apenas para desenvolvedores Grails.

Agora qualquer um pode usar esta DSL: você não precisa mais do Grails para declarar seus beans em Groovy. È possível fazer isto em projetos Java de forma bastante tranquila graças à inclusão da Groovy Bean Definition Language.

Aqui faço uma aposta: a Pivotal percebe o valor do Grails. Prevejo cada vez mais recursos do Grails aparecerem no core do Spring Framework. Na versão 4.1 já está inclusive previsto o suporte a templates Groovy no Spring MVC.

Mudanças no container de injeção de dependências e inversão de controle

Foram incluídos alguns novos recursos que considero bastante interessantes. O primeiro deles diz respeito à anotação @Lazy. Até a versão 3.2 do framework nós apenas a aplicávamos na definição de beans, fazendo com que estes só fossem iniciados quando necessários. Agora ela vai além: podemos aplicá-la também em pontos de injeção!

A outra mudança interessante é que agora podemos usar generics como qualificadores de nossos beans. Abaixo está um exemplo que copiei direto da documentação oficial para ilustrar o seu uso:


@Autowired
private Store<String>  storeString;

@Autowired
private Store<Integer> storeInteger;

Em algumas raras situações é bastante prático.

Spring MVC com suporte a WebSocket!

wslogo

Uma adição que justifica o upgrade. Agora o Spring oferece suporte nativo à tecnologia WebSocket e, claro: da maneira Spring, ou seja, é fácil de usar! Mais do que isto, eles também oferecem suporte a SockJS, que é uma tecnologia de fallback que permite simular websockets em navegadores mais antigos.

E o melhor deixei pro fim: Spring Boot

spring-boot-project-logo

O Spring Boot não é um componente do Spring, mas sim um projeto independente. A idéia é tornar a criação de projetos baseados em Spring muito mais ágil, fácil, desburocratizada, leve e foda. E eles conseguem.

O foco principal por trás da versão 4.0 é tornar o desenvolvimento com Spring ainda mais rápido. O Boot nos possibilita isto ao trazer para o framework o conceito de “convenção sobre configuração”. Na documentação oficial do projeto você verá diversas vezes  “opinionated view”, mas no fundo o que querem dizer é “convenção sobre configuração” (COC).

O que é COC: para a maior parte das suas tarefas, a configuração é essencialmente a mesma. Então por que obrigar o programador a se repetir? O Boot trás uma série de configurações pré-prontas para você: se precisar de algo mais customizado, basta sobrescrevê-las. Diversos requisitos não funcionais já vêm pré-configurados no Boot, e isto irá te poupar muito tempo.

Mais do que isto, o Spring Boot facilita o desenvolvimento de micro serviços (já escrevi sobre esta arquitetura aqui e aqui) e muda bastante a visão que temos sobre o desenvolvimento Java EE. Pra começar, o servidor é embarcado por default, então você executa sua aplicação com o comando java -jar (também é possível gerar um war se você quiser).

E o tempo que você leva para iniciar um projeto Spring Boot? Apenas o de copiar e colar os trechos de código Maven presentes no site do projeto no seu arquivo pom.xml. E sabem de outra coisa? Este será o único XML que você usará em seu projeto (e já era assim na versão 3.2). Um dos objetivos do boot é acabar com o mito de que gastamos muito tempo com arquivos XML no Spring.

Infelizmente este post é pequeno demais para que eu possa falar mais a respeito do Boot. MInha sugestão é que você passeie pelo site oficial do projeto primeiro.

(sem exagero: na minha opinião este projeto muda radicalmente nossa visão sobre desenvolvimento de aplicações corporativas na plataforma Java)

Concluindo

Apesar das mudanças, o Spring 4.0 ainda é usado exatamente como estamos acostumados na versão 3.x. Há novos recursos, como a DSL em Groovy para declarar beans, mas tirando isto, tudo o que lhes falei no livro ainda é válido e não precisa ser alterado (se leu o livro e encontrou pontos que precisam ser alterados, entre em contato comigo, ok?).

O que fica claro lendo a documentação e diversos posts na Internet é que a Pivotal conseguiu rejuvenescer o Spring: e muito! Quando escrevi o livro muita gente não via vantagem em usar o framework dados os avanços do Java EE 7. Hoje com certeza o Spring está de novo na vanguarda: mais leve, tão simples como antes e surgindo projetos cada vez mais interessantes como o Spring Boot, Spring Data, Spring XD e tantos outros.

Estas foram as novidades do Spring 4 que mais me chamaram a atenção. E sabem o que acho mais bonito? Exatamente pelo fato do projeto sempre ter ser baseado apenas nos conceitos de Inversão de Controle, Injeção de Dependências e AOP permitiram que este evoluísse sem que com isto seus usuários necessitassem reaprender o framework em sua nova versão.

O framework evoluiu, mas você que conhece os conceitos (e torço para que tenha lido meu livro :)) não ficou obsoleto com isto: apenas ganhou alguns novos brinquedos para aplicar em seus projetos. ;)

PS:

já está planejada a atualização do “Vire o Jogo com Spring”. Se você comprou pela Casa do Código, receberá atualizações automaticamente. Então dá pra comprar agora e garantir sua atualização em um futuro bem próximo. :)

semana_groovy

Semana Groovy #8

Links da semana

Como cai no Groovy e mergulhei no Grails: descrevo o início da minha trajetória com Groovy e a origem do Grails Brasil – http://www.itexto.net/devkico/?p=1907

10 tecnologias que empolgam desenvolvedores. Groovy e Gradle no topo! –  http://zeroturnaround.com/rebellabs/10-kick-ass-technologies-modern-developers-love/

Introdução ao Spring XD (Extreme Data), que tem como base Spring e Grails – http://www.infoq.com/articles/introducing-spring-xd

Groovy Weekly #31 – http://glaforge.appspot.com/article/groovy-weekly-31

Apresentações

Usando Groovy para escrever aplicações Android! A famosa apresentação que foi mencionada na primeira edição da semana Groovy agora está disponível! – https://www.youtube.com/watch?v=AebkFsfcuDg

Teste funcionalmente seus projetos Grails com GEB –  https://www.youtube.com/watch?v=McFoNTKD8Q0

CRaSH the shell for the Java Virtual Machine – um projeto interessantíssimo para aqueles que desejam um melhor monitoramento de seus projetos é o CRaSH. Basicamente ele nos fornece um shell no estilo SSH que nos possibilita inspecionar remotamente o funcionamento dos nossos sistemas e ainda executar algumas tarefas. Esta apresentação é um verdadeiro chamado para que todos nós passemos a usar esta tecnologia. :) – https://www.youtube.com/watch?v=ZRQwZfP2uIc

Entrevista com Juergen Hoeller sobre Spring 4, Java 8 e Spring XD – Juergen Hoeller foi um dos fundadores do projeto Spring. Interessante ouvir se você se interessa pelo futuro destas tecnologias – http://www.infoq.com/interviews/Juergen-Hoeller-QConNY-2014-Interview

Lançamentos

Groovy 2.3.5 – Diversas correções de bugs. Uma novidade desta versão é que se preocuparam com compatibilidade com versões futuras, pois incluiram um artefato chamado groovy-backports-compat23 (leia o post no blog do Guillaume Laforge a respeito: http://glaforge.appspot.com/article/groovy-2-3-5-out-with-upward-compatibility ). Vale à pena ler o release notes aqui: https://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10242&version=20491. Em seguida, faça o download em http://www.groovy-lang.org/download.html

Spring 4.1 RC – Uma novidade interessante é o fato de que agora o Spring MVC vai ter suporte nativo a templates Groovy!  - http://spring.io/blog/2014/07/21/spring-framework-4-1-release-candidate-available

Projeto da semana

GR8 CRM – O objetivo do projeto é fornecer funcionalidades de CRM (Customer Relationship Management) para aplicações Grails. Consiste em um amontoado de plugins. Estes irão trazer funcionalidades como gestão de contatos, gerência de tarefas e de projetos, notas, etc. Sem sombra de dúvidas é bastante interessante e vale à pena navegar pelos plugins: http://gr8crm.github.io/

Posts clássicos

Guia itexto: o container de injeção de dependências do Spring – Por baixo do Grails há o Spring Framework. É muito importante que o desenvolvedor entenda os conceitos por trás do Spring para tirar máximo proveito do Grails. Neste artigo (que acabou dando origem ao meu livro sobre o mesmo assunto) todos estes conceitos são explicados em detalhe – http://www.itexto.net/devkico/?p=859

GORM por trás dos panos. GORM é o framework de persistência do Grails. Já faz algum tempo que passou a ser uma API independente também. O melhor lugar para entender seu funcionamento por trás dos panos é o guia para desenvolvedores do framework,que pode ser acessado neste link: http://projects.spring.io/grails-data-mapping/manual/index.html

Assine nossa newsletter!

Quer receber esta newsletter por e-mail no momento em que for publicada? Basta se inscrever preenchendo este formulário!