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.
Top comments (0)