【问题标题】:config values are null in the OpenFeign controllerOpenFeign 控制器中的配置值为空
【发布时间】:2020-04-21 09:33:36
【问题描述】:

您好,我是 openfeign 的新手,我正在尝试使用构建 fein 客户端的控制器类,并且想使用配置文件中应用的“baseurl”,但它不是从配置文件中读取它,而是读取它在项目的其他部分,在调试模式下,这似乎甚至在配置类准备好之前就已经命中,请帮助。

@Data
@Component
public class MyController {

  private MyTokenClient tokenClient;

  private MyClient MyClient;

  //TBD read from db
  private String MyUserId;
  private String MyPassword;

  // need to get this value from config
  @Value("${My.base-url}")
  private String baseUrl = "https://api.test.annabanana.com";


  @Autowired
  public MyController() {

    this.tokenClient = Feign.builder().contract(new SpringMvcContract())
      .encoder(new GsonEncoder())
      .decoder(new GsonDecoder())
      .logger(new Slf4jLogger(MyTokenClient.class))
      .logLevel(feign.Logger.Level.FULL)
      .requestInterceptor(new BasicAuthRequestInterceptor("USER", "PASSWORD"))
      .target(MyTokenClient.class, baseUrl);

    this.MyClient = Feign.builder().contract(new SpringMvcContract())
      .requestInterceptor(new MyRequestInterceptor()).target(MyClient.class, baseUrl);

  }

}

【问题讨论】:

    标签: java spring-boot openfeign


    【解决方案1】:

    试试看

    @Component
    public class MyController {
    
      private final MyClient MyClient;
    
      private MyTokenClient tokenClient;
      private String MyUserId;
      private String MyPassword;
    
      @Autowired
      public MyController(@Value("${My.base-url}") String baseUrl) {
        this.tokenClient = Feign.builder().contract(new SpringMvcContract())
          .encoder(new GsonEncoder())
          .decoder(new GsonDecoder())
          .logger(new Slf4jLogger(MyTokenClient.class))
          .logLevel(feign.Logger.Level.FULL)
          .requestInterceptor(new BasicAuthRequestInterceptor("USER", "PASSWORD"))
          .target(MyTokenClient.class, baseUrl);
        this.MyClient = Feign.builder().contract(new SpringMvcContract())
          .requestInterceptor(new MyRequestInterceptor()).target(MyClient.class, baseUrl);
      }
    }
    

    不要使用@Data,如果它不是 dto

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 2018-11-11
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      相关资源
      最近更新 更多