设置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的可用错误。 我究竟做错了什么?请帮忙。
答案 0 :(得分:1)
havingValue =“ false”
仅当属性值完全为 false 时,此方法才有效。对于任何其他通常可以解析为逻辑假的值(例如),它将不起作用。缺少价值。
因此,一般来说,请检查拼写错误,并检查组件扫描路径上是否有给定的配置类arr