Почему источник данных Springboot max-wait не работает - PullRequest
0 голосов
/ 21 января 2019

Я настраиваю spring.datasource.max-wait = 3000 в моем проекте, и я думаю, что он выдаст исключение примерно через 3 с, если spring.datasource.url не так.Но это не вступает в силу.Он все еще тратит более 3 с (около 5 м), чтобы бросить исключение.Почему?

версия Springboot v1.5.8.RELEASE

конфигурация и код, как это

spring:
  datasource:
    master:
      url: jdbc:mysql://172.16.11.229:3306/tc_ums?zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8
      username: root
      password: 1234
      driver-class-name: com.mysql.jdbc.Driver
      maxActive: 10
      maxIdle: 5
      minIdle: 5
      initialSize: 5
      minEvictableIdleTimeMillis: 3600000
      timeBetweenEvictionRunsMillis: 1200000
      test-while-idle: true
      validation-query: SELECT 1
      max-wait: 3000
    slave00:
      url: jdbc:mysql://172.16.11.229:3306/tc_ums?zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8
      username: root
      password: 1234
      driver-class-name: com.mysql.jdbc.Driver
      maxActive: 10
      maxIdle: 5
      minIdle: 5
      initialSize: 5
      minEvictableIdleTimeMillis: 1800000
      timeBetweenEvictionRunsMillis: 300000
      test-while-idle: true
      validation-query: SELECT 1
      max-wait: 3000



@Bean
@Primary
@ConfigurationProperties(prefix="spring.datasource.master")
public DataSource MasterDataSource() {
    return new DataSource();
}

@Bean
@ConfigurationProperties(prefix="spring.datasource.slave00")
public DataSource SlaveDataSource00() {
    return new DataSource();
}

@Bean
public DynamicDataSource dataSource(@Qualifier("MasterDataSource") DataSource masterDataSource,
                                    @Qualifier("SlaveDataSource00") DataSource slaveDataSource00) {
    Map<Object, Object> targetDataSources = new HashMap<Object, Object>();
    targetDataSources.put(DatabaseType.master, masterDataSource);
    targetDataSources.put(DatabaseType.slave00, slaveDataSource00);

    DynamicDataSource dataSource = new DynamicDataSource();
    dataSource.setTargetDataSources(targetDataSources);
    dataSource.setDefaultTargetDataSource(masterDataSource);
    return dataSource;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...