Spring控制器/组件实现可序列化

per*_*ner 5 java serialization spring spring-mvc

在最近的基于Web的Java项目中,我遇到了很多地方,都看到了基于Spring的Controller / Component实现Serializable

我很好奇,为什么控制器/组件必须实现Serializable

我认为这样做是错误的做法,到目前为止,对于要实施的任何方案进行搜索Serializable都没有产生任何效果。我认为这违反了MVC原则,而且是非常规的。您可能希望将域/业务对象与控制器/组件分开。

我想在代码库中纠正这种不良做法,但只是想确保我有理由这样做。

任何说明这种情况的解释/场景将是可理解的。

Wil*_*ing 3

控制器不需要Serializable。它们是无状态的,只是模型和视图之间的中介。对于其他无状态组件也可以这样说。制作它们没有任何好处Serializable

然而,有状态模型对象通常是Serializable因为它们有时被放置在HttpSession. 应用程序服务器要求会话中的对象用于Serializable复制和持久性目的。