Package org.springframework.boot.jdbc
Class DataSourceBuilder<T extends DataSource>
java.lang.Object
org.springframework.boot.jdbc.DataSourceBuilder<T>
- Type Parameters:
T
- theDataSource
type being built
Convenience class for building a
DataSource
. Provides a limited subset of the
properties supported by a typical DataSource
as well as detection logic to pick
the most suitable pooling DataSource
implementation.
The following pooling DataSource
implementations are supported by this builder.
When no type
has been explicitly set, the first available pool
implementation will be picked:
- Hikari (
com.zaxxer.hikari.HikariDataSource
) - Tomcat JDBC Pool (
org.apache.tomcat.jdbc.pool.DataSource
) - Apache DBCP2 (
org.apache.commons.dbcp2.BasicDataSource
) - Oracle UCP (
oracle.ucp.jdbc.PoolDataSourceImpl
)
The following non-pooling DataSource
implementations can be used when
explicitly set as a type
:
- Spring's
SimpleDriverDataSource
(org.springframework.jdbc.datasource.SimpleDriverDataSource
) - Oracle (
oracle.jdbc.datasource.OracleDataSource
) - H2 (
org.h2.jdbcx.JdbcDataSource
) - Postgres (
org.postgresql.ds.PGSimpleDataSource
) - Any
DataSource
implementation with appropriately named methods
This class is commonly used in an @Bean
method and often combined with
@ConfigurationProperties
.
- Since:
- 2.0.0
- Author:
- Dave Syer, Madhura Bhave, Fabio Grassi, Phillip Webb
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionbuild()
Return a newly builtDataSource
instance.static DataSourceBuilder<?>
create()
Create a newDataSourceBuilder
instance.static DataSourceBuilder<?>
create
(ClassLoader classLoader) Create a newDataSourceBuilder
instance.static DataSourceBuilder<?>
derivedFrom
(DataSource dataSource) Create a newDataSourceBuilder
instance derived from the specified data source.driverClassName
(String driverClassName) Set the driver class name that should be used when building the datasource.static Class<? extends DataSource>
findType
(ClassLoader classLoader) Find theDataSource
type preferred for the given classloader.Set the password that should be used when building the datasource.<D extends DataSource>
DataSourceBuilder<D>Set theDataSource
type that should be built.Set the URL that should be used when building the datasource.Set the username that should be used when building the datasource.
-
Method Details
-
type
Set theDataSource
type that should be built.- Type Parameters:
D
- the datasource type- Parameters:
type
- the datasource type- Returns:
- this builder
-
url
Set the URL that should be used when building the datasource.- Parameters:
url
- the JDBC url- Returns:
- this builder
-
driverClassName
Set the driver class name that should be used when building the datasource.- Parameters:
driverClassName
- the driver class name- Returns:
- this builder
-
username
Set the username that should be used when building the datasource.- Parameters:
username
- the user name- Returns:
- this builder
-
password
Set the password that should be used when building the datasource.- Parameters:
password
- the password- Returns:
- this builder
-
build
Return a newly builtDataSource
instance.- Returns:
- the built datasource
-
create
Create a newDataSourceBuilder
instance.- Returns:
- a new datasource builder instance
-
create
Create a newDataSourceBuilder
instance.- Parameters:
classLoader
- the classloader used to discover preferred settings- Returns:
- a new
DataSource
builder instance
-
derivedFrom
Create a newDataSourceBuilder
instance derived from the specified data source. The returned builder can be used to build the same type ofDataSource
withusername
,password
,url
anddriverClassName
properties copied from the original when not specifically set.- Parameters:
dataSource
- the sourceDataSource
- Returns:
- a new
DataSource
builder - Since:
- 2.5.0
-
findType
Find theDataSource
type preferred for the given classloader.- Parameters:
classLoader
- the classloader used to discover preferred settings- Returns:
- the preferred
DataSource
type
-