在注入服务的情况下序列化Domain实例?

时间:2017-10-02 23:35:53

标签: grails serialization dependency-injection gorm domain-object

我有一个Domain对象,它使用注入的Spring Security服务def springSecurityService跟踪创建,删除和修改它的用户。这些对象的实例保存在会话中,在生产中,会话将持久保存到数据库以进行会话故障转移。 Jetty会话存储类序列化会话中的对象,但如果会话包含不可序列化的对象springSecurityService,则会引发异常。是否有人将springSecurityService实例标记为已忽略,transient可能是,但仍然可以访问service?我试过了。

static transients = ['springSecurityService']

没有帮助。

1 个答案:

答案 0 :(得分:4)

尝试使用,

transient SpringSecurityService springSecurityService
static transients = ['springSecurityService']

第一个语句告诉Java,不要序列化;而第二个告诉Grails不要坚持。

注意:顺便说一句,在域类中注入服务是discouraged