java - 多种配置文件- Spring Bean 注入(inject)

标签 java spring profiles

@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/

相关文章:

maven - 当文件存在时使用通配符激活配置文件

java - 实体管理器 NULL - Spring MVC JPA

java - Processing 中的计数器数组

java - 如果我在 App Engine 上构建 Spring 应用程序,它会默认使用多线程还是可以配置为?

maven-2 - Maven配置文件依赖

maven - Maven,不同配置文件的xml文件

java - 您如何部署 .war?

java - 正则表达式替换 HTML 字符串中的样式属性

java - 如何使用 MultiResourceItemReader 读取多个文件?

java - 如何为函数中的带注释参数编写mockito