JAXB创建的Java类是否具有逻辑代码



我使用jaxb将XML配置文件加载到Java对象(configurationDTO)。在此Java对象(ConfigurationDTO)上添加一些逻辑代码是一个好练习,还是我应该使用此逻辑代码(即配置)创建一个不同的Java对象。当我说逻辑代码时,是指配置文件应具有的一些检查/约束。Java类" ConfigurationDto"是否仅包含Geters?

问题是为什么您需要这种约束?您是否要使用对象不仅用于编组/拆除?如果是这样,那是坏主意。经验法则不是在应用程序的所有级别之间传播DTO对象。如果您遵守此规则,则无需在DTO中有其他约束。

JAXB标准使您能够在元帅和弹出时间期间验证对象。这意味着,如果您的XML模式需要非空字段,但是相应的Java对象为零值,那么元帅将失败。反之亦然。

这是JAXB文档的报价

验证是验证XML文档是否满足模式中表达的所有约束的过程。JAXB 1.0在未显示时间提供了验证,还启用了JAXB内容树上的按需验证。JAXB 2.0仅允许在Unmarshal和元帅时间进行验证。Web服务处理模型将在阅读数据中放松,并且严格地将其写出。为了满足该模型,将验证添加到元帅时间,以便用户可以确认以Jaxb表单修改文档时不会使XML文档无效。

这种方法具有自己的缺点(如果您将DTO传播在应用程序中,您将失去控制),但是优点更有价值。

最新更新