我敢肯定我以前看过,但现在找不到任何东西。当我尝试这样做时:
class Foo {
def springSecurityService
User userInstance = springSecurityService.currentUser
}
在编译结束时出现以下错误:
不能为默认用户设置服务吗?
Foo
是域类。 编辑
我使用
javax.annotations.PostConstruct
尝试了以下解决方案,但从未调用带注释的方法。我不认为它被调用是因为我在其中插入了println
语句,但该语句未被调用。我正在使用new Foo()
实例化我的类(class)。 最佳答案
试试这个
import javax.annotation.PostConstruct
class Foo {
def springSecurityService
User userInstance
@PostConstruct
private void init() {
userInstance = springSecurityService.currentUser
}
}
您的代码无法正常工作的原因是,您试图在
userInstance
被依赖注入(inject)之前设置springSecurityService
。我假设
Foo
是一个域类,如果它是src/groovy
中的一个类,则此方法将行不通,因为这些类不受依赖项注入(inject)的约束。