在最近的一个基于 Web 的 Java 项目中,我在很多地方看到了基于 Spring 的 Controller/Component 实现 Serializable
。
我很好奇,为什么 Controller/Component 必须实现 Serializable
?
我认为这样做是错误的做法,到目前为止搜索任何方案来实现 Serializable
都没有产生任何结果。我认为它违反了MVC原则,是非常规的。您可能希望将域/业务对象与 Controller /组件分开。
我想在代码库中纠正这种不良做法,但只是想确保我有这样做的理由。
任何说明此案例的解释/场景都将不胜感激。
最佳答案
Controller 不需要Serializable
。它们是无状态的,只是在模型和 View 之间进行调解。其他无状态组件也可以这样说。让它们Serializable
没有任何好处。
然而,有状态模型对象通常是 Serializable
,因为它们有时被放置在 HttpSession
中。应用服务器要求 session 中的对象可序列化
,以用于复制和持久化目的。
关于java - Spring Controller /组件实现可序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21323336/