SpringBoot集成OpenFeign,实现服务间的相互调用
文章目录
- SpringBoot集成OpenFeign,实现服务间的相互调用
- 一、实验准备与目标
- 二、添加依赖
- 三、写调用接口
- 四、写controller层
- 五、启动类注解
- 六、结果
一、实验准备与目标
有业务模块business
和跑批模块batch
。
在business
模块中设有test
接口,内容如下:
java">@RestController
public class TestController {@GetMapping("/test")public String test(){return "test business";}}
目标是在batch
模块中调用business
模块的test
接口,以此模拟微服务环境下,不同服务之间相互调用的情况。
二、添加依赖
在调用模块中添加依赖,即在batch模块添加:
<!--远程调用openfeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--openfeign默认使用的是loadBalance的负载均衡器 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId></dependency>
三、写调用接口
BusinessFeign.java:
java"> @FeignClient(name = "business", url = "http://127.0.0.1:8002")
public interface BusinessFeign {@GetMapping("/business/test")String hello();}
注意要在business
模块配置中申明该模块是business
,这样微服务之间才能互相认识。
spring.application.name=business
四、写controller层
java">@RestController
public class TestController {private static final Logger LOG = LoggerFactory.getLogger(TestController.class);@ResourceBusinessFeign businessFeign;@GetMapping("/test")public String hello() {String businessHello = businessFeign.hello();LOG.info(businessHello);return "Hello World! Batch! " + businessHello;}}
五、启动类注解
在batch
模块启动类上添加注解:@EnableFeignClients("com.mystudy.train.batch.feign")
申明开启feign代理,告知SpringBoot哪里是feign代理。
六、结果
business
模块中日志打印:
batch
模块中日志打印:
由此可见,成功在batch
模块中调用business
模块的test
接口,并返回数据结果。