我正在使用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的构造函数参数中遇到此错误。此错误的原因是什么?
答案 0 :(得分:1)
使用@Value
从属性文件或系统变量中注入值。它通常具有${database.uri}
答案 1 :(得分:0)
@Autowired
注释会注入在构造函数中定义的类型(在您的情况下为两个String),如果您需要将该类作为@Component
并且仍需要此构造函数,则需要定义Spring要注入的豆子。
我将创建一个@ConfigurationProperties
类并注入它而不是多个字符串。
答案 2 :(得分:0)