Grails inicialización de la clase de dominio
-
25-09-2019 - |
Pregunta
Mi Griales aplicación tiene la siguiente primavera frijol se define en spring/resources.groovy
calendarService(CalendarService) { bean ->
bean.initMethod = "init"
}
Este método se ve algo como:
class CalendarService {
void init() {
User.findByEmail("foo@doo.com")
}
}
Cuando llamo a la findByEmail
buscador dinámico consigo un MissingMethodException
. Mi conjetura es que estoy tratando de llamar a este método antes de tiempo, es decir, antes de que las clases de dominio han tenido los buscadores dinámicas añadido a su metaclase. Una solución sería que llamar a mí mismo de CalendarService.init()
Bootstrap.init
, en lugar de instruir primavera llamarlo, pero no es una solución mejor?
Gracias, Don
No hay solución correcta
Otros consejos
Tienes razón, como se describe en este posterior , si es necesario los métodos dinámicos que es mejor que ir con BootStrap.groovy
BootStrap {
def calendarService
def init() {
calendarService.init()
}
}
Los siguientes obras sin ninguna configuración en resources.groovy
class CalendarService {
@PostConstruct
private void init() {
User.findByEmail("foo@doo.com")
}
}