From c4cf557e30b6f82917aeb53fa634db0267cfc8d3 Mon Sep 17 00:00:00 2001
From: DerekYRC <15521077528@163.com>
Date: Sun, 10 Apr 2022 20:35:26 +0800
Subject: [PATCH] =?UTF-8?q?=E9=9B=86=E6=88=90Feign=E7=AE=80=E5=8C=96?=
=?UTF-8?q?=E8=B0=83=E7=94=A8=E6=96=B9=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mini-spring-cloud-openfeign/pom.xml | 5 +
.../openfeign/FeignAutoConfiguration.java | 17 +++
.../openfeign/FeignClientFactoryBean.java | 19 ++-
.../openfeign/FeignClientSpecification.java | 55 +++++++++
.../openfeign/FeignClientsConfiguration.java | 46 +++++++
.../github/cloud/openfeign/FeignContext.java | 16 +++
.../ribbon/LoadBalancerFeignClient.java | 112 ++++++++++++++++++
.../main/resources/META-INF/spring.factories | 2 +
8 files changed, 269 insertions(+), 3 deletions(-)
create mode 100644 mini-spring-cloud-openfeign/src/main/java/com/github/cloud/openfeign/FeignAutoConfiguration.java
create mode 100644 mini-spring-cloud-openfeign/src/main/java/com/github/cloud/openfeign/FeignClientSpecification.java
create mode 100644 mini-spring-cloud-openfeign/src/main/java/com/github/cloud/openfeign/FeignClientsConfiguration.java
create mode 100644 mini-spring-cloud-openfeign/src/main/java/com/github/cloud/openfeign/FeignContext.java
create mode 100644 mini-spring-cloud-openfeign/src/main/java/com/github/cloud/openfeign/ribbon/LoadBalancerFeignClient.java
create mode 100644 mini-spring-cloud-openfeign/src/main/resources/META-INF/spring.factories
diff --git a/mini-spring-cloud-openfeign/pom.xml b/mini-spring-cloud-openfeign/pom.xml
index 99a980a..c2146ea 100644
--- a/mini-spring-cloud-openfeign/pom.xml
+++ b/mini-spring-cloud-openfeign/pom.xml
@@ -60,6 +60,11 @@
org.springframework.boot
spring-boot-starter-web
+
+
+ cn.hutool
+ hutool-all
+
\ No newline at end of file
diff --git a/mini-spring-cloud-openfeign/src/main/java/com/github/cloud/openfeign/FeignAutoConfiguration.java b/mini-spring-cloud-openfeign/src/main/java/com/github/cloud/openfeign/FeignAutoConfiguration.java
new file mode 100644
index 0000000..64b88b8
--- /dev/null
+++ b/mini-spring-cloud-openfeign/src/main/java/com/github/cloud/openfeign/FeignAutoConfiguration.java
@@ -0,0 +1,17 @@
+package com.github.cloud.openfeign;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author derek(易仁川)
+ * @date 2022/4/9
+ */
+@Configuration
+public class FeignAutoConfiguration {
+
+ @Bean
+ public FeignContext feignContext() {
+ return new FeignContext();
+ }
+}
diff --git a/mini-spring-cloud-openfeign/src/main/java/com/github/cloud/openfeign/FeignClientFactoryBean.java b/mini-spring-cloud-openfeign/src/main/java/com/github/cloud/openfeign/FeignClientFactoryBean.java
index dd9a0a5..5aa76cc 100644
--- a/mini-spring-cloud-openfeign/src/main/java/com/github/cloud/openfeign/FeignClientFactoryBean.java
+++ b/mini-spring-cloud-openfeign/src/main/java/com/github/cloud/openfeign/FeignClientFactoryBean.java
@@ -1,7 +1,11 @@
package com.github.cloud.openfeign;
-import com.github.cloud.openfeign.support.SpringMvcContract;
+import feign.Client;
+import feign.Contract;
import feign.Feign;
+import feign.Target.HardCodedTarget;
+import feign.codec.Decoder;
+import feign.codec.Encoder;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.context.ApplicationContext;
@@ -23,9 +27,18 @@ public class FeignClientFactoryBean implements FactoryBean