gpt4 book ai didi

java - 如何在 WSDL-first 方法中使用一些内容编写 DTO(例如 : validation) method? 只是不写 "anemic domain model"

转载 作者:行者123 更新时间:2023-12-01 14:52:12 24 4
gpt4 key购买 nike

我首先使用 WSDL。我有 WSDL 并使用 Maven 插件“cxf-codegen-plugin”生成 Java 代码。使用Code-first可以编写DTO例如:

public class ServiceSearchCriteria {
private String phoneNumber;
private String businessId;

public boolean validateSearchCriteria() {
if ((phoneNumber != null) || (businessId != null)) {
return true;
}
return false;
}
//... setters/getters etc.
}

因此,使用Code-First(Java-First)可以很容易地编写带有验证方法的DTO。客户可以检查搜索条件是否得到满足。该类将由带有 @WebService 注释的 WebService 类返回。这会起作用。

但是如何使用 WSDL-First 方法编写这样的 DTO(使用某种方法)?

我非常喜欢 WSDL-First 方法(它有很多优点,但这里不是写它们的地方),但我想添加方法......只是不要编写“贫血域模型”并允许客户端检查搜索发送到服务器之前满足条件。

最佳答案

您似乎混淆了各种概念。您不想拥有贫乏的域模型,这很酷,但这与您的 DTO 无关,而 DTO 又与 WSDL 中的类的外观无关。

一个DTO有状态但没有行为。因此,它们只有 getter/setter,但不包含逻辑(例如验证)。

领域模型中的对象具有状态行为(当然除非它们贫乏)。

因此,如果需要 DTO(这取决于您的架构),您需要将业务对象从域模型转换为 DTO,反之亦然。如果您认为从 WSDL DTO 生成的类没问题,那么您需要将它们转换为您的业务对象。 “转换”在这方面意味着转移他们的状态。

关于java - 如何在 WSDL-first 方法中使用一些内容编写 DTO(例如 : validation) method? 只是不写 "anemic domain model",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14724501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com