Dicas de Grails #2 – acessando o contexto do Spring

Todo projeto Grails na realidade é uma aplicação Spring MVC (mais precisamente, Spring Boot a partir do Grails 3.0). Há momentos nos quais é interessante obter acesso ao contexto do Spring (também conhecido como Application Context) para poder obter os beans que compõem nossa aplicação.

Mas quais seriam estes beans? Essencialmente seus controladores, classes de serviço, bibliotecas de tag ou mesmo aqueles que você possa vir a declarar no arquivo grails-app/conf/spring/resources.groovy (isto fica para uma próxima dica).

Em qualquer classe de domínio, controlador, serviço ou biblioteca de tags, para obter o contexto execute o código abaixo em seus métodos:

grailsApplication.mainContext

Sim, é só isto: o objeto grailsApplication é injetado em todos os artefatos acima mencionados e representa, como o próprio nome já diz, sua aplicação Grails em execução. A partir deste objeto é possível obter diversas informações sobre seu projeto, tais como a lista de classes de domínio, controladores, serviços, etc.

Aplicação rápida da dica

Um dos principais usos do contexto do Spring é validação de código de serviços através do Grails Console (o Grails também injeta um objeto grailsApplication nele!). O exemplo abaixo obtém um serviço e, na sequência, executa um método neste para validar seu funcionamento:

def servicoArquivos = grailsApplication.mainContext.getBean(ServicoArquivos.class)
servicoArquivos.executeMetodo()

Conhece o Grails Console?

Se não conhece o Grails Console, segue uma dica brinde: executando o comando “grails console” em seu projeto. Será iniciada uma aplicação desktop na qual você pode executar código Groovy que tem acesso a todas as suas classes de domínio, serviço, controladores, etc.

 

 

2 comments on “Dicas de Grails #2 – acessando o contexto do Spring

    1. Olha só! Agora que vi: o YouTube havia me dado um strike por direitos autorais por que coloquei algo em torno de uns 3 segundos de uma música!

      Uma pena, um dia vou reupar novamente este vídeo, ou mesmo gravar um novo!

Responda

Your email address will not be published. Required fields are marked *