首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一个模块(A)中创建一个类,实现来自另一个模块(B)的抽象类

如何在一个模块(A)中创建一个类,实现来自另一个模块(B)的抽象类
EN

Stack Overflow用户
提问于 2022-02-27 13:58:30
回答 1查看 137关注 0票数 0

我使用Microservices体系结构和Spring-cloud堆栈。

对于服务之间的通信,我决定使用gRPC

我有一个名为Accounting的服务,今天我实现了一个gRPC-interface项目,并将它添加到Git存储库中。

我使用以下命令使用gRPC-interfaceAccounting服务添加了Git-submodules

代码语言:javascript
复制
git submodule add -b master <Git-Repo-URL>

git submodule init

现在我想在Accounting中创建一个服务类,它可以从gRPC-interface创建一个implements类,但是它不识别来自gRPC-interface模块的任何类!!

我想我需要对setting.gradlebuild.gradle文件在Accounting模块中做一些修改,但是我不知道我应该做什么改变,甚至不知道在互联网上应该寻找什么主题。

任何帮助或线索都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-27 14:17:12

听起来你在微观服务上的地位太高了,但是,为了回答这个问题,如前所述:

想想'twitter‘。Twitter有两个‘项目’(不是在git子模块意义上,在英语单词意义上)。有twitter- the -站点,它是运行所有程序的非公共代码,特别是包括当您连接到api.twitter.com时回答的代码。但是还有一个开源库(至少可以公开),您可以将它包含在java项目中,使您可以与twitter对话。这个公共API包括与twitterverse中的概念相匹配的模型类(例如'a tweet‘、'a user’、'a direct message‘、’一个用户决定跟随另一个‘的概念等等),以及使用参数调用的函数(可能在'api’对象上),并返回这些模型类的实例。

,你需要做同样的事情,。一个微服务由两个项目组成:它的API ()是另一个微服务本身包含的,类似于twitter提供的公共'java‘库,以及实际的代码。这可能是一个项目,也可能是一百万,微服务的一个重要部分是:从依赖于微服务B的微服务A的角度来看,除了描述其公共API的部分之外,您根本不需要了解任何关于B的信息。就服务A而言,其他的一切都是一个不重要的实现细节。

如果您将一个微服务的所有代码都包含在另一个微服务中,那么您将得到每一个“microservice”(包括所有其他代码),并且您的服务不再是微的。

是的,这很烦人。您不需要完全复制代码(定义模型的“公共API”部分也可以是微服务本身的依赖项),但每个微服务都会变成维护两个单独的部分,您需要找到一种方法,使“公共API”部分可以像twitter API那样可分发。您可能不想把它放在maven中心,但这就是为什么maven (sonatype,真的)、gradle等都提供了公司范围内的中间依赖服务器的概念,即可以承载您的“公共API”项目。以及本地依赖关系--阅读构建系统的文档,介绍如何处理非开源公开的(即不是maven中央)依赖关系。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71285345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档