Java Spring Boot 2.0 配置 datasource jdbcUrl 升级,Java Spring Boot 2.0 jdbc Url 升级 1.5

1、自定义dataSource()

当您有多个数据源时,可以使用:

@Primary
@Bean
public DataSource customDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getProperty("custom.datasource.driver-class-name"));
dataSource.setUrl(env.getProperty("custom.datasource.url"));
dataSource.setUsername(env.getProperty("custom.datasource.username"));
dataSource.setPassword(env.getProperty("custom.datasource.password"));
return dataSource;
}

2、Spring Boot 2.0.*或以上配置两个DataSource

如果需要配置多个数据源,则必须将其中一个DataSource实例标记为@Primary,因为随后的各种自动配置希望能够按类型获取。

如果您创建自己的DataSource,则自动配置会退回。在以下示例中,我们提供与主数据源上提供的自动配置完全相同的功能集:

@Bean
@Primary
@ConfigurationProperties("app.datasource.first")
public DataSourceProperties firstDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@Primary
@ConfigurationProperties("app.datasource.first")
public DataSource firstDataSource() {
return firstDataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean
@ConfigurationProperties("app.datasource.second")
public BasicDataSource secondDataSource() {
return DataSourceBuilder.create().type(BasicDataSource.class).build();
}

官方文档https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-two-datasources

3、Spring Boot 2.0.*的jdbcUrl配置

Spring Boot 2.xx将默认的 JDBC连接池从Tomcat 更改为更快更好的HikariCP。这是不兼容的,因为HikariCP使用jdbc url的不同属性。

官方文档https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-configure-a-datasource

因为Hikari没有url属性(但是有一个jdbcUrl属性)。在这种情况下,您必须按如下方式重写配置:

app.datasource.jdbc-url=jdbc:mysql://localhost/test
app.datasource.username=dbuser
app.datasource.password=dbpass