@Service
public interface DatabaseConnector {
public Model getModel();
}
@Configuration
@Profile({"!test"})
public class DatabaseConnectorT implements DatabaseConnector {
private final Model model;
@Autowired
public DatabaseConnectorT(@Value("${assemblerFile}") String assemblerFile) {
model = TDBFactory.assembleModel(assemblerFile);
}
}
我收到错误,该 bean 类无法实例化,并且应该给出默认构造函数。为什么需要这样一个?我有两种不同的接口(interface)实现,应根据 Activity 配置文件加载它们。配置应该用注释来完成。
最佳答案
默认构造函数是不带参数的构造函数。
根据错误消息,我认为该类是通过反射创建的。 因此,您必须提供一种通过反射创建类的方法。
我假设构造函数中 assemblerFile 的值无法通过反射确定,因此会调用默认构造函数,但未提供该默认构造函数。
关于java - 多种配置文件- Spring Bean 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26765474/