域中的 Grails 3.2.8 依赖注入 类

Grails 3.2.8 dependency injection in domain classes

默认情况下,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

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

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

重新启用它

Grame 提到 spring-security-core 的补丁即将到来,需要服务注入,同时重新启用自动装配。

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