最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
FeignClient通过配置变量调用配置文件url代码示例
时间:2022-06-29 01:43:08 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下FeignClient通过配置变量调用配置文件url代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
1.application.yml 配置文件配置参数
feign: sys: http://127.0.0.1:8777
2.ISysFeignClient.java 使用@FeignClient时配置
@FeignClient(value = "sys",url = "${feign.sys}") public interface ISysFeignClient { @GetMapping("/sys/queryPlatMenus") List
这样部署开发时就可以只需要修改一处yml配置url就可以了。
调用指定的动态URL
1 创建demo1服务
pom.xml
4.0.0 org.springframework.boot spring-boot-starter-parent 2.5.3 com.demo demo1 0.0.1-SNAPSHOT demo1 Demo project for Spring Boot 1.8 2020.0.3 org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-openfeign org.springframework.cloud spring-cloud-starter-netflix-eureka-client org.springframework.boot spring-boot-starter-test test org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-maven-plugin
application-dev1.yml
server: port: 8111 spring: application: name: ${APPLICATION_NAME:demo1} eureka: client: fetch-registry: true register-with-eureka: true service-url: defaultZone: http://localhost:18880/eureka instance: instance-id: ${spring.cloud.client.ip-address}:${server.port} prefer-ip-address: true
application-dev2.yml
server: port: 8112 spring: application: name: ${APPLICATION_NAME:demo1} eureka: client: fetch-registry: true register-with-eureka: true service-url: defaultZone: http://localhost:18880/eureka instance: instance-id: ${spring.cloud.client.ip-address}:${server.port} prefer-ip-address: true
IndexController.java
package com.demo.demo1.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** * @description: * @author: Evan * @time: 2021/8/2 17:17 */ @RestController public class IndexController { @Value("${server.port}") private String port; @GetMapping("/hello") public String hello(){ System.out.println("进入" + port + "服务器"); return "返回的端口为:" + port; } }
2 创建demo2服务
pom.xml
4.0.0 org.springframework.boot spring-boot-starter-parent 2.5.3 com.demo demo2 0.0.1-SNAPSHOT demo2 Demo project for Spring Boot 1.8 2020.0.3 org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-openfeign org.springframework.cloud spring-cloud-starter-netflix-eureka-client org.springframework.boot spring-boot-starter-test test org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-maven-plugin
application.yml
server: port: 8113 spring: application: name: ${APPLICATION_NAME:demo2} eureka: client: fetch-registry: true register-with-eureka: true service-url: defaultZone: http://localhost:18880/eureka instance: instance-id: ${spring.cloud.client.ip-address}:${server.port} prefer-ip-address: true
DemoFeign.java
package com.demo.demo2.Feign; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import java.net.URI; /** * @description: * @author: Evan * @time: 2021/8/2 17:34 */ //@FeignClient(name = "DEMO1", url="EMPTY") @FeignClient(name = "DEMO1", url="http://localhost:8111") public interface DemoFeign { /** * 调用demo1的接口 * @return */ @RequestMapping(value = "/hello", method = RequestMethod.GET) String hello(); /** * 调用demo1的接口 * @return */ @RequestMapping(value = "/hello", method = RequestMethod.GET) String hello1(URI uri); }
IndexController.java
package com.demo.demo2.controller; import com.demo.demo2.Feign.DemoFeign; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.net.URI; /** * @description: * @author: Evan * @time: 2021/8/2 17:33 */ @RestController public class IndexController { @Autowired private DemoFeign demoFeign; @GetMapping("/testFeign") public String testFeign(){ System.out.println("在demo2服务中,调用demo1的服务"); String resultStr = demoFeign.hello(); System.out.println("在demo2服务中,调用demo1的服务,返回的结果:" + resultStr); return "在demo2服务中,调用demo1的服务,返回的结果:" + resultStr; } @GetMapping("/testFeign2") public String testFeign2(@RequestParam String server) throws Exception{ String url = ""; if("1".equals(server)){ url = "http://localhost:8111"; }else if("2".equals(server)){ url = "http://localhost:8112"; } System.out.println("在demo2服务中,调用demo1的服务" + url); String resultStr = demoFeign.hello1(new URI(url)); System.out.println("在demo2服务中,调用demo1的服务,返回的结果:" + resultStr); return "在demo2服务中,调用demo1的服务,返回的结果:" + resultStr; } }
测试
指定服务器ip
http://localhost:8113/testFeign2?server=1
返回【在demo2服务中,调用demo1的服务,返回的结果:返回的端口为:8111】
http://localhost:8113/testFeign2?server=2
返回【在demo2服务中,调用demo1的服务,返回的结果:返回的端口为:8112】
使用默认的地址
http://localhost:8113/testFeign
返回【在demo2服务中,调用demo1的服务,返回的结果:返回的端口为:8111】
相关文章
- 《尼尔:机械纪元》武器黑之倨傲属性及特殊能力介绍 11-15
- 《尼尔:机械纪元》机械生命体的枪获得方法介绍 11-15
- 《尼尔:机械纪元》武器机械生命体的枪属性及特殊能力介绍 11-15
- 《尼尔:机械纪元》天使之圣翼获得方法介绍 11-15
- 《尼尔:机械纪元》武器天使之圣翼属性及特殊能力介绍 11-15
- 《尼尔:机械纪元》武器恶魔之秽牙属性及特殊能力介绍 11-15