考虑在配置中定义“org.springframework.cloud.openfeign.FeignContext”类型的 bean

mik*_*ker 13 spring-boot microservices spring-cloud-feign

我正在尝试运行该应用程序,但不断提示此错误。

描述

com.clientui.clientui.controller.ClientController 中构造函数的参数 0 需要类型为“org.springframework.cloud.openfeign.FeignContext”的 bean,但无法找到。

行动

考虑在配置中定义“org.springframework.cloud.openfeign.FeignContext”类型的 bean。

这是代码:

主要的

    package com.clientui.clientui;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@SpringBootApplication
@EnableFeignClients("com.clientui")

public class ClientuiApplication {

    public static void main(String[] args) {
        SpringApplication.run(ClientuiApplication.class, args);
    }

}
Run Code Online (Sandbox Code Playgroud)

控制器

package com.clientui.clientui.controller;

import com.clientui.clientui.beans.ProductBean;
import com.clientui.clientui.proxies.MicroserviceProduitsProxy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Controller
public class ClientController {

    private final MicroserviceProduitsProxy produitsProxy;

    public ClientController(MicroserviceProduitsProxy produitsProxy){
        this.produitsProxy = produitsProxy;
    }

    @RequestMapping("/")
    public String accueil(Model model){
        List<ProductBean> produits =  produitsProxy.listeDesProduits();
        model.addAttribute("produits", produits);
        return "Accueil";
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 30

我在将 spring-boot 版本更新到 3.0.0 时遇到了同样的问题,我认为这是与 spring cloud 和 spring boot 自动配置的一些兼容性错误。@ImportAutoConfiguration({FeignAutoConfiguration.class})我通过在应用程序中添加注释解决了这个问题,在您的情况下:

import org.springframework.cloud.openfeign.FeignAutoConfiguration;

@SpringBootApplication
@EnableFeignClients("com.clientui")
@ImportAutoConfiguration({FeignAutoConfiguration.class})
public class ClientuiApplication {

    public static void main(String[] args) {
        SpringApplication.run(ClientuiApplication.class, args);
    }

}
Run Code Online (Sandbox Code Playgroud)