我有我的遗留spring应用程序(不是spring引导)。
现在,我已经移动了一些我认为可以作为服务单独工作的代码,我能够干净地移动代码,并且能够作为一个单独的服务运行(spring应用程序)。
现在,我想发现我的服务,并想从遗留代码中调用,我添加了一个NetFlix-Eureka依赖项,但这是下载我不想要的spring-boot依赖项。
如何在遗留应用程序中发现我的服务并调用它的APIS?
发布于 2019-07-23 14:54:31
我想从你的问题上看-
如果这是正确的话。要连接遗留应用程序,可以执行以下配置。
创建一个类,比如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);
}}WebAppInstanceConfig类-
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了。
https://stackoverflow.com/questions/57151108
复制相似问题