最近遇到一个需求,在Springboot项目中调用其他项目的服务,其他项目用的点评的RPC框框,只能通过Http请求来调用,借鉴网上Springboot访问外部Http请求的解决方法,整理一下,给没使用过的童鞋一个详细的入门式例
1 项目中添加feign依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
2 在启动类上添加 @EnableFeignClients 注解,如图:
3 在配置文件中定义需要调用的http接口地址
xxxUrl=http://www.xxx.cn
4 写一个接口来实现Http请求的调用
这里需要注意几点:1 在接口上用@FeignClient注解 拿到要请求的接口地址 name值按需求定义值即可
2 在具体调用的方法上 使用@RequestMapping注解 就像在Controller中使用的一样 value 是具体需要调用的接口地址,指定请求方法类型(这里用POST),参数可以定义Bean来接收或者用Map接收,符合接口要求即可
3最最重要的一点 只需要接口即可 不需要写实现类!不需要写实现类!!不需要写实现类!!!
5 在需要调用的地方 把4中定义的Bean注入接口使用
嗯,这样就可以了