来自服务的 Grails 依赖注入
Grails Dependency Injection from Service
我正在尝试从以下域 class:
注入我自己的服务 elasticsearchService
class DocumentESO extends ElasticsearchObject{
ElasticsearchService elasticsearchService
def afterInsert() {
elasticsearchService.save(this) // <-- Cannot invoke method save() on null object
}
}
然而,它告诉我它Cannot invoke method save() on null object
。这是我的服务:
@Transactional
class ElasticsearchService {
@Transactional
def save(ElasticsearchObject esObject) {...}
}
我是不是拼错了什么?如果我会使用 ElasticsearchService elasticsearchService = new ElasticsearchService()
那么它会起作用,但我不再有事务支持了。
在此answer中,罗伯特提到它需要初始化,例如使用元编程save()
。这是否意味着在这种情况下我不能使用依赖注入?
因此它将是:
def afterInsert() {
ElasticsearchService elasticsearchService = new ElasticsearchService()
elasticsearchService.save(this)
}
??
GORM 实体中的服务注入自 Grails 3.2.8 起默认禁用。
您可以通过添加到 DocumentESO
:
在这一特定域 class 中打开自动装配
static mapping = {
autowire true
}
我正在尝试从以下域 class:
注入我自己的服务elasticsearchService
class DocumentESO extends ElasticsearchObject{
ElasticsearchService elasticsearchService
def afterInsert() {
elasticsearchService.save(this) // <-- Cannot invoke method save() on null object
}
}
然而,它告诉我它Cannot invoke method save() on null object
。这是我的服务:
@Transactional
class ElasticsearchService {
@Transactional
def save(ElasticsearchObject esObject) {...}
}
我是不是拼错了什么?如果我会使用 ElasticsearchService elasticsearchService = new ElasticsearchService()
那么它会起作用,但我不再有事务支持了。
在此answer中,罗伯特提到它需要初始化,例如使用元编程save()
。这是否意味着在这种情况下我不能使用依赖注入?
因此它将是:
def afterInsert() {
ElasticsearchService elasticsearchService = new ElasticsearchService()
elasticsearchService.save(this)
}
??
GORM 实体中的服务注入自 Grails 3.2.8 起默认禁用。
您可以通过添加到 DocumentESO
:
static mapping = {
autowire true
}