Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在legecy(springwebmvc)代码中发现我的服务(springboot应用程序)_Spring_Spring Boot_Netflix Eureka_Service Discovery_Spring Cloud Consul - Fatal编程技术网

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

如何在legecy(springwebmvc)代码中发现我的服务(springboot应用程序),spring,spring-boot,netflix-eureka,service-discovery,spring-cloud-consul,Spring,Spring Boot,Netflix Eureka,Service Discovery,Spring Cloud Consul,我有我的旧式spring应用程序(不是spring boot) 现在我移动了一些我认为可以作为服务单独工作的代码,我可以干净地移动代码,并且可以作为单独的服务运行(spring boot应用程序) 现在我想发现我的服务并从遗留代码调用,我添加了一个NetFlix Eureka依赖项,但这是下载spring引导依赖项,我不想要 我如何在遗留应用程序中发现我的服务并调用其API?我从您的问题中假设- 您已运行Eureka服务器 您的新spring boot microservice正在连接到eur

我有我的旧式spring应用程序(不是spring boot)

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

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


我如何在遗留应用程序中发现我的服务并调用其API?我从您的问题中假设-

  • 您已运行Eureka服务器
  • 您的新spring boot microservice正在连接到eureka服务器
  • 您正在询问如何连接您的遗产 使用Eureka服务器应用程序,之后您可以发现和 调用新微服务的API
如果是这样的话。要连接旧版应用程序,您可以执行以下配置

创建一个类,比如CustomEurekaClient

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类-

class EurekaClientConfig extends DefaultEurekaClientConfig {
//minimum change needed override
@Override
public List<String> getEurekaServerServiceUrls(String myZone) {
    return Arrays.asList(YOUR_COMMA_SEPRATED_EUREKA_SERVER_URL);
}}
class WebAppInstanceConfig extends MyDataCenterInstanceConfig {
// TODO override all the methods of EurekaInstanceConfig, which you need like serviceUrl...interface and provide respective values
}

在CustomEureka客户端的后期构造中,我们正在向Eureka服务器注册服务。一旦这两项服务都注册到Eureka,您就可以访问API