Grails 3.2.8域类中的依赖注入

时间:2017-03-28 01:51:31

标签: grails grails3 grails-spring-security

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

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

1 个答案:

答案 0 :(得分:3)

从Grails 3.2.8开始,出于性能原因,默认情况下禁用域类自动装配。您可以通过设置render 'books/show', locals: { resource: "Some text" }

重新启用它

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

请参阅我在3.2.8的非官方更改日志: https://gist.github.com/erichelgeson/be2f9f62ab63d989f2ec962ae7001f21