feign 是 netflix 提供的申明式的 httpclient 调用框架
整合方法
1. 添加依赖
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-openfeign</artifactId>
- </dependency>
2. 在 application 添加注解
@EnableFeignClients
3. 编写调用代码
- @FeignClient(name = "jpaas-form")
- public interface FormClient {
- /**
- * 根据表单别名获取表单相关数据.
- * @param alias
- * @param pk
- * @param initPermission
- * @return
- */
- @GetMapping("/form/core/formPc/getByAlias")
- JsonResult<BpmView> getByAlias(@RequestParam(value = "alias") String alias,
- @RequestParam(value = "pk")String pk,
- @RequestParam(value = "initPermission") Boolean initPermission);
1. 添加一个接口类.
2. 增加 @FeignClient 注解
name 指向需要调用的 微服务名称
3. 增加调用方法
遵循 mvc 的写法, 如果返回的数据是一个 java 对象, 最好把这个实体做成公共的类, 供被调用者和调用者进行使用.
- @GetMapping("/users/{id}")
- UserDTO findById(@PathVariable Integer id);
方法示例, 和 spring mvc 差不多.
4. 自定义 FEIGN 日志级别
feign 日志级别, 就是需要打印 feign 的调用参数和响应数据.
使用 java 代码来实现.
1. 编写配置类
- import feign.Logger;
- import org.springframework.context.annotation.Bean;
- public class UserCenterFeignClientConfig {
- @Bean
- public Logger.Level level(){
- return Logger.Level.FULL;
- }
- }
2.feign client 类指定配置
- @FeignClient(name = "user-center",
- // fallback = UserCenterFeignClientFallback.class,
- // fallbackFactory = UserCenterFeignClientFallbackFactory.class,
- configuration = UserCenterFeignClientConfig.class
- )
- public interface UserCenterFeignClient {
3. 在日志中进行指定
编辑 application.YAML
- logging:
- level:
- com.demo.contentcenter.feignclient.UserCenterFeignClient: debug
注意这个日志界别需要为 debug 级别, 只有在 debug 模式才会输出 feign 日志.
来源: http://www.bubuko.com/infodetail-3493122.html