Java 在值对象中实现可序列化?
首先,这里介绍一下Java 在值对象中实现可序列化?,java,jakarta-ee,Java,Jakarta Ee,首先,这里介绍一下VO的背景知识。VOs是在前端层中创建的模型对象,用于传递从服务层返回的值 下面的虚拟代码示例: UserResponseTypeFromService user = userAccountService.getUser(...); UserVO userVO = ServiceResponseHelper.getUserVOFromServiceResponse(user); 然后前端代码将只使用userVO而不是user对象 我的问题是对于UserVO类,我是否必须实现S
VO
的背景知识。VO
s是在前端层中创建的模型对象,用于传递从服务层返回的值
下面的虚拟代码示例:
UserResponseTypeFromService user = userAccountService.getUser(...);
UserVO userVO = ServiceResponseHelper.getUserVOFromServiceResponse(user);
然后前端代码将只使用userVO
而不是user
对象
我的问题是对于UserVO
类,我是否必须实现Serializable
?在这种情况下,我们应该始终考虑线程安全性吗?
提前谢谢。您的问题陈述似乎有点抽象/不清楚,但我还是会尽我所能回答您的问题 关于可序列化;如果某个类的对象必须被持久化或通过网络发送,请确保该类实现了可序列化。如果您的对象不符合要求,则无需使其实现可序列化(当然,除非您计划对
serialVersionUID
字段执行某些操作)
关于线程安全;你能澄清一下这里的上下文吗?如果你想在会话中存储VO和/或想通过有线传输(DTO?),那么你应该实现Serializable VO只是数据持有者,通常是不可变的。如果您遵循这个原则,那么线程安全性是给定的(因为它们是不可变的)。否则,如果在会话中存储线程安全性,则必须考虑线程安全性。