gpt4 book ai didi

java - 配置文件上的 @ConditionalOnProperty 未加载 bean

转载 作者:行者123 更新时间:2023-12-02 09:44:50 26 4
gpt4 key购买 nike

当我设置 use.liquibase 为 true 时,我想加载 liquibase 属性并启动 H2 数据库。在所有其他情况下,我想转到相应的 RDBMS 实例。我有这样的代码

@PropertySource("liquibase.properties")
@ConditionalOnProperty(value = "use.liquibase", havingValue = "true")
@Configuration
public class LiquibaseDaoConfig {

@Bean(name = "dataSource")
public DataSource dataSource(...) {
//load properties from liquibase.properties
//return H2 Datasource
}
}

@Configuration
public class DaoConfig{
@Bean(name = "dataSource")
@ConditionalOnProperty(value = "use.liquibase", havingValue = "false")
@Primary
public DataSource dataSource(....) {
// return Oracle Datatsource
}

@Bean
public StuffDao stuffDao(DataSource dataSource) {
return new StuffDaoImpl(dataSource);
}
}

use.liquibase = true

我收到“没有类型为‘javax.sql.DataSource’的合格 bean 可用”错误。我究竟做错了什么?请帮忙。

最佳答案

具有值=“假”

当且仅当属性值完全为假时,此方法才有效。它不适用于通常会解析为逻辑错误的任何其他值,例如。缺失值。

因此,一般来说,检查拼写错误以及组件扫描路径上是否存在给定的配置类

关于java - 配置文件上的 @ConditionalOnProperty 未加载 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56741590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com