子类无法创建构造函数

时间:2019-11-11 20:50:50

标签: java spring spring-boot

我正在使用Spring Boot创建一个应用程序。目前,我有一个抽象类,如下所示:

public abstract class DB {

    private final String dbName;
    private final String dbServerName;

    public DB(String dbName, String dbServerName) {
        this.dbName = dbName;
        this.dbServerName = dbServerName;
    }

    public String getDbName() {
        return dbName;
    }

    public String getDbServerName() {
        return dbServerName;
    }

    abstract Boolean pushDataToDB();
}

此抽象类应由以下类使用:

@Component
public class InfluxDB extends DB {

    @Autowired
    public InfluxDB(String dbName, String dbServerName) {
        super(dbName, dbServerName);
    }

    @Override
    public Boolean pushDataToDB() {
        return true;
    }
}

但是,我收到以下错误消息:无法自动装配,找不到字符串类型的bean。我在dbName和dbServername的构造函数参数中遇到此错误。此错误的原因是什么?

3 个答案:

答案 0 :(得分:1)

使用@Value从属性文件或系统变量中注入值。它通常具有${database.uri}

这样的格式

答案 1 :(得分:0)

@Autowired注释会注入在构造函数中定义的类型(在您的情况下为两个String),如果您需要将该类作为@Component并且仍需要此构造函数,则需要定义Spring要注入的豆子。

我将创建一个@ConfigurationProperties类并注入它而不是多个字符串。

答案 2 :(得分:0)

删除Autowired,这不是必需的。

自动装配是调用Beaned对象。

我推荐您这个https://www.baeldung.com/spring-autowire