【问题标题】:Grails 3.2.8 dependency injection in domain classes域类中的 Grails 3.2.8 依赖注入
【发布时间】:2017-03-28 01:51:30
【问题描述】:

默认情况下,Grails 3.2.8 似乎没有为域类工作的依赖注入。

当我创建一个新应用并使用以下 println 添加 Spring Security Core 3.1.1 时:

protected void encodePassword() {
    println "springSecurityService == null? ${(springSecurityService==null).toString()}"
    password = springSecurityService?.passwordEncoder ? springSecurityService.encodePassword(password) : password
}

我明白了:

springSecurityService == null? true

如果我尝试类似地创建和注入服务,我会得到相同的 null 值。有没有好的解决方法?

【问题讨论】:

  • 你如何定义service?提供的代码 sn -p 不够用。
  • 除此之外还提供目录结构,如果您遵循正确的约定,那么它应该可以工作。 “默认情况下,Grails 3.2.8 似乎没有为域类提供依赖注入。”可能是错误的概括。对于我的应用,3.2.6 Grails 工作正常。

标签: grails grails3 grails-spring-security


【解决方案1】:

从 Grails 3.2.8 开始,出于性能原因,域类的自动装配默认是禁用的。你可以通过设置grails.gorm.autowire = true重新启用它

Grame 提到了 spring-security-core 的补丁来解决需要服务注入的问题,同时只需重新启用自动装配。

在此处查看我关于 3.2.8 的非官方变更日志: https://gist.github.com/erichelgeson/be2f9f62ab63d989f2ec962ae7001f21

【讨论】:

  • 我刚刚为你的非官方变更日志添加了书签。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-10
  • 2014-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
相关资源
最近更新 更多