首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自服务的Grails依赖注入

来自服务的Grails依赖注入
EN

Stack Overflow用户
提问于 2021-08-17 16:06:09
回答 1查看 46关注 0票数 1

我正在尝试从以下域类注入我自己的服务elasticsearchService

代码语言:javascript
复制
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。这是我的服务:

代码语言:javascript
复制
@Transactional
class ElasticsearchService {
    @Transactional
    def save(ElasticsearchObject esObject) {...}
}

我拼错什么了吗?如果我使用ElasticsearchService elasticsearchService = new ElasticsearchService(),那么它就可以工作,但我不再有事务支持。

在这个answer中,robert提到了它需要初始化,例如使用元编程save()。这是否意味着在这种情况下我不能使用依赖注入?

因此,它将是:

代码语言:javascript
复制
  def afterInsert() {
    ElasticsearchService elasticsearchService = new ElasticsearchService()
    elasticsearchService.save(this) 
  }

??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-17 18:03:30

从Grails 3.2.8开始,默认情况下禁用GORM实体中的服务注入。

通过添加到DocumentESO,您可以在这个特定的域类中启用自动装配

代码语言:javascript
复制
static mapping = {
       autowire true
   }

但是,不推荐使用:https://grails.org/blog/2017-05-09.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68820676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档