gpt4 book ai didi

java - 如果两个服务都位于同一项目中,如何从其他服务调用一个 Web 服务方法?

转载 作者:行者123 更新时间:2023-11-29 06:06:41 24 4
gpt4 key购买 nike

假设有两个 Web 服务 Test1Test2 位于同一项目的同一服务器上。实现类有Test1ImplTest2Impl。 Test1Impl 包含方法 getDetails 的定义,Test2Impl 包含方法 addDetails

现在我想从Test1Impl 中的getDetails 调用Test2Impl 中的addDetails。我得到以下想法来实现此功能

1) 由于这些服务实现类位于同一个项目中,我可以将其称为正常的 java 方法吗

new Test1Impl().addDetails(request)

这将打破网络服务限制。

2) 我应该调用 Web 服务来调用该方法。这将变得令人讨厌,因为它将访问网络并向位于同一服务器和同一项目中的服务发出 Web 服务调用。

ServiceLocator.getTest1Services().addDetails(request);

3) 在 Test1ImpladdDetails 中实现相同的方法作为私有(private)方法。

public class Test1Impl{

public Response addDetails(Request request){
//
//
}
}

public class Test2Impl{

public Response addDetails(Request request){
//
//
}
}

这会造成代码冗余,降低代码标准。

请帮助我走哪条路,欢迎有新想法。

最佳答案

我认为您在设计中混合了关注点:您应该重构业务逻辑,使其远离 Web 服务接口(interface)/公开曝光/传输逻辑。也许有一个 DetailsS​​ervice 业务服务类(不是 Web 服务!),它具有服务在必要时调用的 addDetailsgetDetails 方法。这样您将没有重复的代码,并且您仍然在 Web 服务接口(interface)级别保持读取和写入操作分离。

我希望让我的 Web 服务类尽可能小,并且负责将信息传递到我的业务服务层。这意味着如果您要向您的应用程序添加一个 GUI,那么业务逻辑已经编码并且您可以将新的 GUI 挂接到 DetailsS​​ervice

关于java - 如果两个服务都位于同一项目中,如何从其他服务调用一个 Web 服务方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8307480/

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