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

Java Spring控制器/组件实现可序列化,java,spring,spring-mvc,serialization,Java,Spring,Spring Mvc,Serialization,在最近的一个基于Web的Java项目中,我遇到了许多地方,在那里我看到了一个基于Spring的控制器/组件实现了可序列化 我很好奇,为什么控制器/组件必须实现可序列化 我认为这样做是错误的,到目前为止,搜索任何实现Serializable的场景都没有得到任何结果。我认为这违反了MVC原则,是非常规的。您可能希望将域/业务对象与控制器/组件分开 我想在代码库中纠正这种错误做法,但只是想确保我有这样做的理由 任何说明这种情况的解释/场景都将不胜感激。控制器无需可序列化。它们是无状态的,只是在模型和视

在最近的一个基于Web的Java项目中,我遇到了许多地方,在那里我看到了一个基于Spring的控制器/组件实现了
可序列化

我很好奇,为什么控制器/组件必须实现
可序列化

我认为这样做是错误的,到目前为止,搜索任何实现
Serializable
的场景都没有得到任何结果。我认为这违反了MVC原则,是非常规的。您可能希望将域/业务对象与控制器/组件分开

我想在代码库中纠正这种错误做法,但只是想确保我有这样做的理由


任何说明这种情况的解释/场景都将不胜感激。

控制器无需可
序列化。它们是无状态的,只是在模型和视图之间进行调解。对于其他无状态组件也是如此。使它们
可序列化
没有任何好处


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

需要控制器类实现可序列化的特定用例是在使用时


Spring会话将会话外部化——我使用Spring会话和JDBC来协调容器之间的会话。当您有一个会话作用域控制器时,spring会话将使用byte[]列在数据库中序列化该状态。

听起来很奇怪。你能发布代码吗?