SpringCloud(十二):Feign的demo之覆写Feign的默认配置
2017-08-14 16:04
495 查看
一、调用用户微服务
1、改写原先的feign服务为microservice-consumer-movie-feign-customizing2、编写Configuration1.java
package com.itmuch.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import feign.Contract;
import feign.Logger;
@Configuration
public class Configuration1 {
@Bean
public Contract feignContract(){
return new feign.Contract.Default();
}
}Spring Cloud Netflix默认的SpringMvcController将替换为feign.Contract.Default。
3、修改UserFeignClient
@FeignClient(name="microservice-provider-user", configuration=Configuration1.class)
public interface UserFeignClient {
@RequestLine("GET /simple/{id}")
public User findById(@Param("id") Long id);
}这里讲Configuration1的配置加了进来,匹配注解和获得参数的注解也变了。
4、启动测试,第一次超时报错,再次请求正常 。
关于超时问题,后面博客分析解决。
二、访问Eureka中注册的服务
用feign来实现:
1、编写Configuration2.java
package com.itmuch.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import feign.auth.BasicAuthRequestInterceptor;
@Configuration
public class Configuration2 {
@Bean
public BasicAuthRequestInterceptor basicAuthRequestInterceptor(){
return new BasicAuthRequestInterceptor("user", "password123");
}
}
这里使用的是默认的SpringMvcContract,
2、在MovieController.java中添加内容:
@GetMapping("/{serviceName}")
public String findServiceInfoFromEurekaByServiceName(@PathVariable String serviceName){
return this.feignClient2.findServiceInfoFromEurekaByServiceName(serviceName);
}
3、编写UserFeignClient2.java
package com.itmuch.cloud.feign;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.itmuch.cloud.entity.User;
import com.itmuch.config.Configuration1;
import com.itmuch.config.Configuration2;
import feign.RequestLine;
@FeignClient(name="xxxx", url="http://localhost:8761/", configuration=Configuration2.class)
public interface UserFeignClient2 {
@RequestMapping(value="/eureka/apps/{serviceName}",method=RequestMethod.GET)
public String findServiceInfoFromEurekaByServiceName(@PathVariable("serviceName") String serviceName);
}
4、启动测试,第一次超时报错,再次请求正常 。
小结
下篇继续对Feign日志的demo进行介绍,尽情期待。。。相关文章推荐
- Spring Cloud Feign Jackson自定义配置
- spring cloud feign的各种配置的使用
- Spring Cloud架构教程 (十二)服务消费(Feign)【Dalston版】
- SpringCloud(十一):Feign的demo之添加Feign
- feign三:覆写feign的默认配置及feign的日志
- 微服务之springCloud-docker-feign配置(五)
- 学习Spring Cloud第十二课(覆写Feign的默认配置)
- Spring Cloud FeignClient 断路器配置
- 关于在Spring Cloud Feign工程中使用Ribbon配置不生效的问题
- 详解Spring Cloud Feign 熔断配置的一些小坑
- Spring Cloud Feign Ribbon 配置
- Feign的覆写默认配置和Feign的日志
- 笔记:Spring Cloud Feign Hystrix 配置
- Spring Cloud中Feign配置详解
- 笔记:Spring Cloud Feign 其他配置
- Spring Cloud 覆写远端的配置属性实例详解
- 关于在Spring Cloud Feign工程中使用Hystrix配置不生效的问题
- SpringCloud(十四):Feign的demo之解决超时问题
- Spring Cloud Edgware新特性之三:使用配置属性自定义Feign的行为
- Spring Cloud 学习笔记——入门、特征、配置