我确定我以前见过这个,但我现在找不到任何相关信息。当我尝试这样做时:
class Foo {
def springSecurityService
User userInstance = springSecurityService.currentUser
}
我在编译结束时遇到以下错误:
无法在null对象
上获取属性'currentUser'
我可以不使用服务设置默认用户吗?
Foo
是一个域类。修改
我使用javax.annotations.PostConstruct
尝试了以下解决方案,但从未调用带注释的方法。我不认为它被调用,因为我在其中放了一个println
语句,它不会被调用。我用new Foo()
实例化了我的课程。
答案 0 :(得分:2)
试试这个
import javax.annotation.PostConstruct
class Foo {
def springSecurityService
User userInstance
@PostConstruct
private void init() {
userInstance = springSecurityService.currentUser
}
}
您的代码无效的原因是您尝试在userInstance
依赖注入之前设置springSecurityService
。
我假设Foo
是一个域类,如果它是src/groovy
中的一个类,那么这种方法将不起作用,因为这些类不受依赖注入的影响。