@ConditionalOnProperty в файле конфигурации не загружает компонент - PullRequest
0 голосов
/ 24 июня 2019

Я хотел бы загрузить свойства liquibase и запустить базу данных H2, когда я установил значение use.liquibase.Во всех остальных случаях я хотел бы перейти к соответствующему экземпляру СУБД.У меня есть код что-то вроде этого

@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' доступная ошибка.Что я делаю неправильно?Пожалуйста, помогите.

1 Ответ

1 голос
/ 24 июня 2019

withValue = "false"

это будет работать тогда и только тогда, когда значение свойства будет точно false .Это не будет работать для любого другого значения, которое обычно разрешается в логическое ложное значение, например.пропущенное значение.

В общем, проверьте наличие опечаток и, если заданы классы конфигурации arr на пути сканирования компонентов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...