有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

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

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

任何说明本案例的解释/场景都将不胜感激


共 (2) 个答案

  1. # 1 楼答案

    在使用spring session时,需要控制器类实现Serializable的一个特定用例

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

  2. # 2 楼答案

    控制器不需要是Serializable。它们是无状态的,只是在模型和视图之间进行调解。其他无状态组件也是如此。让它们Serializable没有好处

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