考虑在配置中定义类型为“ java.lang.String”的bean

时间:2018-12-08 17:03:54

标签: spring spring-boot

运行spring boot应用程序

说明:

Car中构造函数的参数0需要一个类型为'java.lang.String'的bean,该豆不能被查找

    @Component
public class Car implements Driver {

    private String name;
    private int color;

    @Autowired
    public Car(String name, int color) {
        this.name = name;
        this.color = color;

    }

    @Override
    public void close() {

    }
}

2 个答案:

答案 0 :(得分:1)

如果要将Cat对象作为组件注入,则应提供其参数,例如String name和int Color,然后可以按照以下步骤添加一些配置管理器:

  1. 删除@Component和@Autowired批注。
  2. 需要在某些配置管理器类上创建一个bean作为配置。

    @Configuration
    public class ConfigurationManager {
    
         @Bean
         public Car car() {
            return new Car("Default", 1);
        } 
    } 
    

答案 1 :(得分:0)

我也遇到过类似的问题。我用getter和setter代替了构造函数来赋值。它起作用了。