SpringCloud学习笔记(三)- SpringCloud Feign

Feign 声明式服务调用

一、 简单服务搭建

pom 引用

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-feign</artifactId>
</dependency>

1、FeignApplication

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class FeignApplication {
    public static void main(String[] args) {
        SpringApplication.run(FeignApplication.class, args);
    }
} 

2、 controller层

@RestController
public class CilentController {

    @Value("${server.port}")
    String port;

    @RequestMapping("/show")
    public String show(){
        System.out.println("客户端1测试信息,启用的端口号:"+port);
        return  "客户端信息";
    }
}

3、 FeignClient

@org.springframework.cloud.netflix.feign.FeignClient("eureka-client")
public interface FeignClient {

    @RequestMapping(value = "/show/{id}",method = RequestMethod.GET)
    public Object findByUser(@PathVariable("id") String id);
}

二、重写feign 默认设置

1、 配置类

@Configuration
public class FeignConfig {
    @Bean
    public Contract feignContract() {
        return new feign.Contract.Default();
    }
}

2、FeignClient 类
FeignClient中name属性为必填, configuration 引用配置类

@org.springframework.cloud.netflix.feign.FeignClient(name="eureka-client",configuration = FeignConfig.class)
public interface FeignClient {

    @RequestLine("GET /show/{id}")
    public Object findByUser(@Param("id") String id);
}

3、 添加feign日志
yml 配置文件:

logging:
  level:
    cn.pl.feign.FeignApplication : debug

FeignClient 类中添加日志方法

@Bean
Logger.Level feignLoggerLevel() {
   return Logger.Level.FULL;
}

猜你喜欢

转载自blog.csdn.net/panleiaiying/article/details/79847114
今日推荐