在公开Web服务时是否有办法,我可以将对象中的某些属性标记为不可变或只读?
由于
答案 0 :(得分:0)
在这方面,网络服务并没有什么特别之处。如果您的数据对象在服务器端是不可变的,并且在客户端被反序列化为不可变类,则没有人能够修改属性。
但你的动机是什么?从客户的角度来看,不可改变的主要是为了方便,而不是服务器实现的任何安全性/正确性。如果他们对他们的对象版本进行修改,它将不会影响你的对象,因为它们是不同的。因此,如果你担心的是你想暴露,例如服务器配置参数,没有它们可以更改它们,然后继续 - 序列化/反序列化过程意味着它们获得对象的副本,而不是对象本身的引用。
(请注意,如果您正在使用远程对象共享,例如RMI或Terracotta,那么上面的段落可能不是真的,但那不是真正意义上的Web服务。)
答案 1 :(得分:0)
我认为您所寻找的不是反序列化所有类的成员。如果你正确地注释它们,那么一些成员将不会被编组