FeignConfig.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.zhixinghe1.ots.config;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import org.springframework.beans.factory.ObjectFactory;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
  7. import org.springframework.cloud.openfeign.support.SpringDecoder;
  8. import org.springframework.context.annotation.Bean;
  9. import org.springframework.context.annotation.Configuration;
  10. import org.springframework.http.MediaType;
  11. import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
  12. import feign.Logger;
  13. import feign.RequestInterceptor;
  14. import feign.codec.Decoder;
  15. /**
  16. * @className FeignConfig
  17. * @description Feign配置
  18. * @author ChenYL
  19. * @date 2023/07/23 20:55
  20. * @version V1.0
  21. **/
  22. @Configuration
  23. public class FeignConfig {
  24. @Autowired
  25. private BizConfig bizConfig;
  26. @Bean("myInterceptor")
  27. public RequestInterceptor requestInterceptor() {
  28. return template -> {
  29. template.query("appid", bizConfig.getWechatMiniProgramAppId()).query("secret",
  30. bizConfig.getWechatMiniProgramSecret());
  31. };
  32. }
  33. /**
  34. * 调整Feign日志输出 注:FeignClient只能输出debug等级的日志
  35. *
  36. * @return
  37. */
  38. @Bean
  39. public Logger.Level devLogLevel() {
  40. return Logger.Level.FULL;
  41. }
  42. /**
  43. * 增加转换支持
  44. *
  45. * @return
  46. */
  47. @Bean
  48. public Decoder feignDecoder() {
  49. Jackson2HttpConverter jackson2HttpConverter = new Jackson2HttpConverter();
  50. ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(jackson2HttpConverter);
  51. return new SpringDecoder(objectFactory);
  52. }
  53. /**
  54. * content-type = text/plain 增加JSON转换支持
  55. */
  56. public class Jackson2HttpConverter extends MappingJackson2HttpMessageConverter {
  57. public Jackson2HttpConverter() {
  58. List<MediaType> mediaTypes = new ArrayList<>();
  59. mediaTypes.add(MediaType.TEXT_PLAIN);
  60. setSupportedMediaTypes(mediaTypes);
  61. }
  62. }
  63. }