spring cloud整合OpenFeign
生活随笔
收集整理的這篇文章主要介紹了
spring cloud整合OpenFeign
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
spring cloud整合OpenFeign
pom.xml配置
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-openfeign-core --> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-openfeign-core</artifactId><version>2.2.6.RELEASE</version> </dependency>主啟動類
使用@EnableFeignClients開啟Feign功能,這里使用Eureka做服務注冊所以使用@EnableEurekaClient注解
@SpringBootApplication @EnableEurekaClient @EnableFeignClients public class OrderApplication81 {public static void main(String[] args) {SpringApplication.run(OrderApplication81.class,args);} }定義service接口
使用openFeign需要編寫接口,然后通過使用@FeignClient注解。接口的方法寫提供者的接口即可,OpenFeign就會通過這些來生成接口的代理對象。(之所以@Component標注的接口能生成Bean,是因為在生成Bean的過程中有AOP,AOP后生成的是代理對象。)springcloud整合OpenFeign,原理就是通過AOP進行橫切增強然后生成代理對象。
@Component @FeignClient(value = "CLOUD-PAYMENT-SERVICE") public interface PaymentOpenfeginService {@GetMapping("/payment/get/{id}")public ResponseMessage getPaymentById(@PathVariable("id") int id);}controller編寫
通過@Resource自動注入PaymentOpenfeginService接口的代理對象,這個代理對象由spring cloud openFeign生成。這個代理對象是通過動態代理生成的,通過AOP實現代碼增強。
@RestController @Slf4j public class OrderController {@Resourceprivate PaymentOpenfeginService paymentOpenfeginService;@GetMapping("/comsumer/payment/get/{id}")public ResponseMessage getPaymentById(@PathVariable("id") int id){return paymentOpenfeginService.getPaymentById(id);} }openfeign超時控制
通過application.yml中添加以下配置,配置openfeign連接超時控制。
feign:httpclient:connection-timeout: 2000openFeign日志功能
通過指定feign接口的日志等級,通知feign的日志
logging:level: #指定feign接口的日志等級com.example.springcloud.service.PaymentOpenfeginService: debug總結
以上是生活随笔為你收集整理的spring cloud整合OpenFeign的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鲜地黄根的功效与作用、禁忌和食用方法
- 下一篇: 阳雀花的功效与作用、禁忌和食用方法