多环境调用feign
1、定义环境配置类
@Service
@Slf4j
@Data
@Lazy()
public class SystemConfigService {
/**
* 设置环境参数
*/
public static void initConfigFeign() {
// debug启动
System.setProperty("config.debug.url.appFeign", "http://127.0.0.1:8080");
// linu系统启动
System.setProperty("config.linux.url.appFeign", "http://127.0.0.1:8081");
// windows系统启动
System.setProperty("config.windows.url.appFeign", "http://127.0.0.1:8082");
// 是否注册到注册中心
System.setProperty("eureka.client.register-with-eureka", "false");
}
/**
* 判断运行系统
*/
public static boolean hasWindows() {
String systemType = System.getProperties().getProperty("os.name");
return (null != systemType && systemType.toLowerCase().contains("windows"));
}
}
2、启动类添加系统判断
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class TestApplication {
public static void main(String[] args) {
// 设置系统参数
if (SystemConfigService.getDebug()) {
SystemConfigService.initConfigFeign();
}
SpringApplication.run(TestApplication.class, args);
}
}
3、配置feign的url
@FeignClient(value = "test-feign", contextId = "TestFeign", url = "${config.debug.url.appFeign:}")
public interface TestFeign {
@GetMapping(value = "/test/getInfo")
ResultBody getInfo(@RequestParam String name);
}
如果windows启动,服务不会注册到eureka注册中,调用TestFeign.getInfo时会调用http://127.0.0.1:8080上的服务,否则调用注册中心的服务