README.md | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-common/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/FeignTestController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-demo/src/main/java/com/ruoyi/demo/feign/FeignTestService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-demo/src/main/java/com/ruoyi/demo/feign/fallback/FeignTestFallback.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-demo/src/main/java/com/ruoyi/demo/feign/fallback/package-info.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-demo/src/main/java/com/ruoyi/demo/feign/package-info.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-framework/src/main/java/com/ruoyi/framework/config/FeignConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
README.md
@@ -24,6 +24,7 @@ * 容卿¹å¨ Tomcat æ¹ä¸º å¹¶åæ§è½æ´å¥½ç undertow * 代ç çææ¨¡æ¿ æ¹ä¸ºéé Mybatis-Plus ç代ç * 项ç®ä¿®æ¹ä¸º mavenå¤ç¯å¢é ç½® * éæ Feign æ¥å£å管ç Http 请æ±(å¦ä¸æ¹è¯·æ± æ¯ä»,çä¿¡,æ¨éç) * å级MybatisPlus 3.4.2 * å¢å demo模å示ä¾(ç»ä¸ä¼å¢å 模åçå°ä¼ä¼´ååè) * 忥å级 3.3 pom.xml
@@ -33,6 +33,8 @@ <jwt.version>0.9.1</jwt.version> <mybatis-plus.version>3.4.2</mybatis-plus.version> <hutool.version>5.4.0</hutool.version> <feign.version>2.2.6.RELEASE</feign.version> <feign-okhttp.version>11.0</feign-okhttp.version> </properties> <!-- ä¾èµå£°æ --> @@ -183,6 +185,18 @@ <version>${hutool.version}</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>${feign.version}</version> </dependency> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-okhttp</artifactId> <version>${feign-okhttp.version}</version> </dependency> <!-- 宿¶ä»»å¡--> <dependency> <groupId>com.ruoyi</groupId> ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
@@ -3,12 +3,14 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.cloud.openfeign.EnableFeignClients; /** * å¯å¨ç¨åº * * @author ruoyi */ @EnableFeignClients @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) public class RuoYiApplication { ruoyi-admin/src/main/resources/application.yml
@@ -190,3 +190,13 @@ excludes: /system/notice/* # å¹é 龿¥ urlPatterns: /system/*,/monitor/*,/tool/* feign: # å¼å¯å缩 compression: request: enabled: true response: enabled: true okhttp: enabled: true ruoyi-common/pom.xml
@@ -136,6 +136,16 @@ <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-okhttp</artifactId> </dependency> </dependencies> </project> ruoyi-demo/src/main/java/com/ruoyi/demo/controller/FeignTestController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.demo.feign.FeignTestService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController @RequestMapping("/feign/test") public class FeignTestController { private final FeignTestService feignTestService; @GetMapping("/search/{wd}") public AjaxResult search(@PathVariable String wd) { String search = feignTestService.search(wd); return AjaxResult.success("æä½æå",search); } } ruoyi-demo/src/main/java/com/ruoyi/demo/feign/FeignTestService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.ruoyi.demo.feign; import com.ruoyi.demo.feign.fallback.FeignTestFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @FeignClient(name = "baidu",url = "http://www.baidu.com",fallback = FeignTestFallback.class) public interface FeignTestService { @GetMapping("/s") String search(@RequestParam("wd") String wd); } ruoyi-demo/src/main/java/com/ruoyi/demo/feign/fallback/FeignTestFallback.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package com.ruoyi.demo.feign.fallback; import com.ruoyi.demo.feign.FeignTestService; public class FeignTestFallback implements FeignTestService { @Override public String search(String wd) { return null; } } ruoyi-demo/src/main/java/com/ruoyi/demo/feign/fallback/package-info.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1 @@ package com.ruoyi.demo.feign.fallback; ruoyi-demo/src/main/java/com/ruoyi/demo/feign/package-info.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1 @@ package com.ruoyi.demo.feign; ruoyi-framework/src/main/java/com/ruoyi/framework/config/FeignConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ package com.ruoyi.framework.config; import feign.*; import okhttp3.ConnectionPool; import okhttp3.OkHttpClient; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.cloud.openfeign.FeignAutoConfiguration; import org.springframework.cloud.openfeign.support.SpringMvcContract; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.concurrent.TimeUnit; @Configuration @ConditionalOnClass(Feign.class) @AutoConfigureBefore(FeignAutoConfiguration.class) public class FeignConfig { @Bean public OkHttpClient okHttpClient(){ return new OkHttpClient.Builder() .readTimeout(60, TimeUnit.SECONDS) .connectTimeout(60, TimeUnit.SECONDS) .writeTimeout(120, TimeUnit.SECONDS) .connectionPool(new ConnectionPool()) .build(); } @Bean public Feign.Builder feignBuilder() { return Feign.builder(); } @Bean public Contract feignContract() { return new SpringMvcContract(); } @Bean public Logger.Level feignLoggerLevel() { return Logger.Level.BASIC; } @Bean public Request.Options feignRequestOptions() { return new Request.Options(10, TimeUnit.SECONDS, 60,TimeUnit.SECONDS,true); } @Bean public Retryer feignRetry() { return new Retryer.Default(); } }