74.1 配置数据源

自定义DataSource类型的@Bean可以覆盖默认设置,正如Section 24.7.1, “Third-party configuration”解释的那样,你可以很轻松的将它跟一系列Environment属性绑定:

  1. @Bean
  2. @ConfigurationProperties(prefix="datasource.fancy")
  3. public DataSource dataSource() {
  4. return new FancyDataSource();
  5. }
  1. datasource.fancy.jdbcUrl=jdbc:h2:mem:mydb
  2. datasource.fancy.username=sa
  3. datasource.fancy.poolSize=30

Spring Boot也提供了一个工具类DataSourceBuilder用来创建标准的数据源。如果需要重用DataSourceProperties的配置,你可以从它初始化一个DataSourceBuilder

  1. @Bean
  2. @ConfigurationProperties(prefix="datasource.mine")
  3. public DataSource dataSource(DataSourceProperties properties) {
  4. return properties.initializeDataSourceBuilder()
  5. // additional customizations
  6. .build();
  7. }

在此场景中,你保留了通过Spring Boot暴露的标准属性,通过添加@ConfigurationProperties,你可以暴露在相应的命命名空间暴露其他特定实现的配置, 具体详情可参考’Spring Boot特性’章节中的Section 29.1, “Configure a DataSource”DataSourceAutoConfiguration类源码。