首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在legecy(Spring )代码中发现我的服务(Spring应用程序)

如何在legecy(Spring )代码中发现我的服务(Spring应用程序)
EN

Stack Overflow用户
提问于 2019-07-22 17:35:41
回答 1查看 203关注 0票数 0

我有我的遗留spring应用程序(不是spring引导)。

现在,我已经移动了一些我认为可以作为服务单独工作的代码,我能够干净地移动代码,并且能够作为一个单独的服务运行(spring应用程序)。

现在,我想发现我的服务,并想从遗留代码中调用,我添加了一个NetFlix-Eureka依赖项,但这是下载我不想要的spring-boot依赖项。

如何在遗留应用程序中发现我的服务并调用它的APIS?

EN

回答 1

Stack Overflow用户

发布于 2019-07-23 14:54:31

我想从你的问题上看-

  • 你让尤里卡服务器在运行
  • 您的新春季启动微服务正在连接到eureka服务器。
  • 您正在询问如何将遗留应用程序与Eureka服务器连接,之后您可以发现并调用新微服务的APIs。

如果这是正确的话。要连接遗留应用程序,可以执行以下配置。

创建一个类,比如CustomEurekaClient。

代码语言:javascript
复制
public class CustomEurekaClient {

private static ApplicationInfoManager appaInfoManager;
private static EurekaClient eurekaClient;

@Autowired
private WebAppInstanceConfig webAppInstanceConfig;
@Autowired
private EurekaClientConfig eurekaClientConfig;

private ApplicationInfoManager initializeApplicationInfoManager(EurekaInstanceConfig instanceConfig) {
    InstanceInfo instanceInfo = new EurekaConfigBasedInstanceInfoProvider(instanceConfig).get();
    return new ApplicationInfoManager(instanceConfig, instanceInfo);
}

private EurekaClient initializeEurekaClient(ApplicationInfoManager applicationInfoManager,                                                EurekaClientConfig clientConfig) {
    eurekaClient = new DiscoveryClient(applicationInfoManager, eurekaClient); //use this eureka client while de
    // registering service
    return eurekaClient;
}

@PostConstruct
public void runRegistration() {
    ApplicationInfoManager applicationInfoManager =
            initializeApplicationInfoManager(webAppInstanceConfig);
    initializeEurekaClient(applicationInfoManager, eurekaClientConfig);
    applicationInfoManager.setInstanceStatus(InstanceInfo.InstanceStatus.UP);
}}

EurekaClientConfig类-

代码语言:javascript
复制
class EurekaClientConfig extends DefaultEurekaClientConfig {
//minimum change needed override
@Override
public List<String> getEurekaServerServiceUrls(String myZone) {
    return Arrays.asList(YOUR_COMMA_SEPRATED_EUREKA_SERVER_URL);
}}

WebAppInstanceConfig类-

代码语言:javascript
复制
class WebAppInstanceConfig extends MyDataCenterInstanceConfig {
// TODO override all the methods of EurekaInstanceConfig, which you need like serviceUrl...interface and provide respective values

}

在postConstruct of CustomEurekaClient中,我们将该服务注册到尤里卡服务器。一旦这两个服务都注册到Eureka,您就可以访问API了。

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

https://stackoverflow.com/questions/57151108

复制
相关文章

相似问题

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