spring cloud(四) feign
spring cloud 使用feign进行服务间调用
1. 新建boot工程 pom引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.启动类添加注解@EnableEurekaClient @EnableFeignClients
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class WebWapApplication {
public static void main(String[] args) {
SpringApplication.run(WebWapApplication.class, args);
}
}
3. application.properties添加配置
server.port=8080
spring.application.name=web-wap
spring.main.allow-bean-definition-overriding=true
#eureka
eureka.client.service-url.defaultZone=http://localhost:9001/eureka/
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.cloud.client.ip-address}:${server.port}
4. 编写调用程序
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserFeignCilent userFeignCilent;
@GetMapping("/getUserInfoList")
public GlobalResult<List<UserInfoRespVo>> getUserInfoList(){
return userFeignCilent.getUserInfoList();
}
@GetMapping("/getUserInfo")
public GlobalResult<UserInfoRespVo> getUserInfo(Integer id){
return userFeignCilent.getUserInfo(id);
}
}
/**
* 调用网关服务
*/
@FeignClient(name = "zuul-server")
@RequestMapping("/userService")
public interface UserFeignCilent {
@GetMapping("/getUserInfoList")
GlobalResult<List<UserInfoRespVo>> getUserInfoList();
@GetMapping("/getUserInfo")
GlobalResult<UserInfoRespVo> getUserInfo(@RequestParam("id") Integer id);
}
服务提供者 user-service
@RestController
public class UserController {
@Autowired
private UserInfoService userInfoService;
@GetMapping("/getUserInfoList")
public GlobalResult<List<UserInfoRespVo>> getUserInfoList() {
return userInfoService.getUserInfoList();
}
@GetMapping("/getUserInfo")
public GlobalResult<UserInfoRespVo> getUserInfo(Integer id) {
return userInfoService.getUserInfo(id);
}
}
5.调用结果

项目github 地址 https://github.com/yongxiangliu123/SpringCloud
spring cloud(四) feign的更多相关文章
- spring cloud 使用feign 遇到问题
spring cloud 使用feign 项目的搭建 在这里就不写了,本文主要讲解在使用过程中遇到的问题以及解决办法 1:示例 @RequestMapping(value = "/gener ...
- spring cloud关于feign client的调用对象列表参数、设置header参数、多环境动态参数试配
spring cloud关于feign client的调用 1.有些场景接口参数需要传对象列表参数 2.有些场景接口设置设置权限等约定header参数 3.有些场景虽然用的是feign调用,但并不会走 ...
- Spring Cloud 整合 Feign 的原理
前言 在 上篇 介绍了 Feign 的核心实现原理,在文末也提到了会再介绍其和 Spring Cloud 的整合原理,Spring 具有很强的扩展性,会把一些常用的解决方案通过 starter 的方式 ...
- spring cloud 之 Feign 使用HTTP请求远程服务
一.Feign 简介 在spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLCo ...
- Spring Cloud 之 Feign
新建Spring Boot工程,命名为feign 1.pom.xml添加依赖 <?xml version="1.0" encoding="UTF-8"?& ...
- Spring Cloud中Feign如何统一设置验证token
代码地址:https://github.com/hbbliyong/springcloud.git 原理是通过每个微服务请求之前都从认证服务获取认证之后的token,然后将token放入到请求头中带过 ...
- Spring Cloud 组件 —— feign
feign 作为一个声明式的 Http Client 开源项目.在微服务领域,相比于传统的 apache httpclient 与在 spring 中较为活跃的 RestTemplate 更面向服务化 ...
- spring cloud中feign的使用
我们在进行微服务项目的开发的时候,经常会遇到一个问题,比如A服务是一个针对用户的服务,里面有用户的增删改查的接口和方法,而现在我有一个针对产品的服务B服务中有一个查找用户的需求,这个时候我们可以在B服 ...
- spring cloud 之 Feign的使用
1.添加依赖 2.创建FeignClient 原理:Spring Cloud应用在启动时,Feign会扫描标有@FeignClient注解的接口,生成代理,并注册到Spring容器中.生成代理时Fei ...
随机推荐
- Spring Boot学习总结(3)——SpringBoot魅力所在
使用Java做Web应用开发已经有近20年的历史了,从最初的Servlet1.0一步步演化到现在如此多的框架,库以及整个生态系统.经过这么长时间的发展,Java作为一个成熟的语言,也演化出了非常成熟的 ...
- mysql优化sql语句
mysql优化sql语句 常见误区 www.2cto.com 误区1: count(1)和count(primary_key) 优于 count(*) 很多人为了统计记录条数,就使 ...
- C#中的stathread标签【待填的坑】
stathread这种线程是给COM组件使用的线程,如果不适用com对象 如果com对象标记为sta的,则它就是单线程运行的 stathread 组件线程遗留的标签
- Spring MVC-表单(Form)标签-复选框集合(Checkboxes)示例(转载实践)
以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_checkboxes.htm 说明:示例基于Spring MVC 4.1.6. 以 ...
- tcpip学习
http://www.cnblogs.com/ggjucheng/archive/2012/08/18/2645324.html
- Rails 异常处理 && 性能
Rails 异常处理 的多种处理方法 1. routes match '*path', via: :all, to: 'controller#action' 2. application.rb 的 ...
- 一见钟情Sublime
打开 preferences -> Setting-User,加入下面代码 { "font_size": 14, "ignored_packages": ...
- c15--二位数组
// // main.c // day08 #include <stdio.h> int main(int argc, const char * argv[]) { /* int scor ...
- <vim实用技巧>学习笔记
第三章插入模式 1.插入模式下的删除 2.返回普通模式 3.复制 yt, //复制当前光标到逗号(,)之前的内容 第四章 可视模式 1 ...
- raspberry-同路由器用putty和vnc桌面登录方法
一个raspberry B,家里电脑是win10系统. 最初是用HDMI连家里电视机的显示屏来当桌面的,没有配置就好用,但第二次再开机发现怎么弄都显示无信号,排除SD卡不活动.HDMI接口被烧坏等可能 ...