使用PostContstruct将服务注入到taglib中

时间:2018-01-18 11:33:44

标签: grails dependency-injection taglib

我有一个带有PostConstruct注释的init方法的服务,以确保它在依赖注入完成之前不会运行。

@PostConstruct
private void init() {
     // Create some datasources on the fly
     MyDomain.list().each {
          createDataSource(it)
     }
}

我现在需要将此服务注入taglib,但应用程序将无法启动并出现以下错误。

  

java.lang.IllegalStateException:类[com.me.MyDomain]上的方法是   在Grails应用程序之外使用

堆栈跟踪专门指向上面的用法,当然,当我删除时它会很好地启动。 有谁知道一个可靠的'这个方法呢?

1 个答案:

答案 0 :(得分:0)

尝试:

@PostConstruct
void init() {
    Domain.withNewSession {
        println Domain.count
    }
}

@PostConstruct
void init() {
    Domain.withTransaction {
        println Domain.count
    }
}