在值对象中实现Serializable?

时间:2011-01-24 05:59:15

标签: java java-ee

首先,这里有VO的背景知识。 VO是在前端层中创建的模型对象,用于传递从服务层返回的值。

下面的虚拟代码示例:

UserResponseTypeFromService user = userAccountService.getUser(...);
UserVO userVO = ServiceResponseHelper.getUserVOFromServiceResponse(user);

然后,前端代码将仅使用userVO而不是user对象。

我的问题是UserVO课程,我是否必须实施Serializable?在这种情况下我们应该始终考虑线程安全吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

你的问题陈述似乎有点抽象/不清楚,但我仍然会尽力解决你的问题。

关于可序列化;如果必须持久保存或通过线路发送该类的对象,请确保类实现Serializable。如果您的对象不符合要求,则无需实现Serializable(除非您计划对serialVersionUID字段执行某些操作)。

关于线程安全;你能澄清这里的背景吗?

答案 1 :(得分:0)

如果您想将VO存储在会话中和/或想要通过线路传输它们(DTO?),那么您应该实现Serializable。

VO只是数据持有者,通常是不可变的。如果你遵循这个原则,那么线程安全是给定的(因为它们是不可变的)。否则,如果要将它们存储在会话中,则必须考虑线程安全性。