我有一个带有 PostConstruct 注释的 init 方法的服务,以确保它在依赖注入(inject)完成之前不会运行。
@PostConstruct
private void init() {
// Create some datasources on the fly
MyDomain.list().each {
createDataSource(it)
}
}
我现在需要将此服务注入(inject) taglib,但应用程序将无法启动并出现以下错误..
java.lang.IllegalStateException: Method on class [com.me.MyDomain] was used outside of a Grails application
堆栈跟踪特别指出了上面的用法,当然当我删除它时它启动得很好。
有谁知道解决这个问题的“可靠”方式?
最佳答案
试试看:
@PostConstruct
void init() {
Domain.withNewSession {
println Domain.count
}
}
或者
@PostConstruct
void init() {
Domain.withTransaction {
println Domain.count
}
}
关于grails - 使用 PostContstruct 将服务注入(inject)标签库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48320356/