Răsfoiți Sursa

feat:增加feign调用配置

ChenYL 2 ani în urmă
părinte
comite
71951e34e5

+ 1 - 1
README.md

@@ -1,6 +1,6 @@
 待办列表
 
-* 图片水印
+*
 * 定时任务数据统计和展示
 
 开发进度

+ 18 - 0
pom.xml

@@ -20,7 +20,21 @@
         <mybatis.plus.version>3.5.3.1</mybatis.plus.version>
         <thumbnailator.version>0.4.20</thumbnailator.version>
         <lombok.mapstruct.binding.version>0.2.0</lombok.mapstruct.binding.version>
+        <spring-cloud.version>2022.0.3</spring-cloud.version>
     </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
     <dependencies>
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -34,6 +48,10 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-aop</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
 
         <dependency>
             <groupId>com.h2database</groupId>

+ 2 - 0
src/main/java/com/zhixinghe1/ots/OtsApplication.java

@@ -2,7 +2,9 @@ package com.zhixinghe1.ots;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 
+@EnableFeignClients
 @SpringBootApplication
 public class OtsApplication {
 

+ 67 - 0
src/main/java/com/zhixinghe1/ots/config/FeignConfig.java

@@ -0,0 +1,67 @@
+package com.zhixinghe1.ots.config;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.ObjectFactory;
+import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.cloud.openfeign.support.SpringDecoder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+
+import feign.Logger;
+import feign.RequestInterceptor;
+import feign.codec.Decoder;
+
+/**
+ * @className FeignConfig
+ * @description Feign配置
+ * @author ChenYL
+ * @date 2023/07/23 20:55
+ * @version V1.0
+ **/
+@Configuration
+public class FeignConfig {
+
+    @Bean("myInterceptor")
+    public RequestInterceptor requestInterceptor() {
+        return template -> {
+            template.query("appid", "").query("secret", "");
+        };
+    }
+
+    /**
+     * 调整Feign日志输出等级
+     * 
+     * @return
+     */
+    @Bean
+    public Logger.Level feignLoggerLevel() {
+        return Logger.Level.FULL;
+    }
+
+    /**
+     * 增加转换支持
+     * 
+     * @return
+     */
+    @Bean
+    public Decoder feignDecoder() {
+        Jackson2HttpConverter jackson2HttpConverter = new Jackson2HttpConverter();
+        ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(jackson2HttpConverter);
+        return new SpringDecoder(objectFactory);
+    }
+
+    /**
+     * content-type = text/plain 增加JSON转换支持
+     */
+    public class Jackson2HttpConverter extends MappingJackson2HttpMessageConverter {
+        public Jackson2HttpConverter() {
+            List<MediaType> mediaTypes = new ArrayList<>();
+            mediaTypes.add(MediaType.TEXT_PLAIN);
+            setSupportedMediaTypes(mediaTypes);
+        }
+    }
+}

+ 6 - 0
src/main/resources/application.yml

@@ -2,6 +2,8 @@
 logging:
   config: classpath:logback-spring.xml
   path: ./logs
+  level:
+    com.zhixinghe1.ots.feign: debug
 
 spring:
   datasource:
@@ -17,6 +19,10 @@ spring:
     console:
       enabled: true
 
+# 因为feign调试日志是debug级别输出,springboot默认的日志级别是info,所以feign的debug日志级别就不会输出
+# logging.level=debug这样配置是对所有的日志级别进行配置
+# 该场景只需要对feign接口进行debug配置,所以是这样配置logging.level.com.example.order.feign=debug
+
 file:
   tmp:
     dir: E:\Documents\Code\OnlineToolService\tmp\

+ 2 - 2
src/main/resources/logback-spring.xml

@@ -24,7 +24,7 @@
     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
         <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>info</level>
+            <level>debug</level>
         </filter>
         <encoder>
             <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
@@ -146,7 +146,7 @@
         <logger name="com.zhixinghe1.ots" level="debug"/>
     </springProfile>
 
-    <root level="info">
+    <root level="debug">
         <appender-ref ref="CONSOLE"/>
         <appender-ref ref="INFO_FILE"/>
         <appender-ref ref="WARN_FILE"/>