类 DataSourceBuilder<T extends DataSource>

java.lang.Object
org.springframework.boot.jdbc.DataSourceBuilder<T>
类型参数:
T - the DataSource type being built

public final class DataSourceBuilder<T extends DataSource> extends Object
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)
  • C3P0 (com.mchange.v2.c3p0.ComboPooledDataSource)

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.

从以下版本开始:
2.0.0
作者:
Dave Syer, Madhura Bhave, Fabio Grassi, Phillip Webb
另请参阅:
  • 方法详细资料

    • type

      public <D extends DataSource> DataSourceBuilder<D> type(Class<D> type)
      Set the DataSource type that should be built.
      类型参数:
      D - the datasource type
      参数:
      type - the datasource type
      返回:
      this builder
    • url

      public DataSourceBuilder<T> url(String url)
      Set the URL that should be used when building the datasource.
      参数:
      url - the JDBC url
      返回:
      this builder
    • driverClassName

      public DataSourceBuilder<T> driverClassName(String driverClassName)
      Set the driver class name that should be used when building the datasource.
      参数:
      driverClassName - the driver class name
      返回:
      this builder
    • username

      public DataSourceBuilder<T> username(String username)
      Set the username that should be used when building the datasource.
      参数:
      username - the user name
      返回:
      this builder
    • password

      public DataSourceBuilder<T> password(String password)
      Set the password that should be used when building the datasource.
      参数:
      password - the password
      返回:
      this builder
    • build

      public T build()
      Return a newly built DataSource instance.
      返回:
      the built datasource
    • create

      public static DataSourceBuilder<?> create()
      Create a new DataSourceBuilder instance.
      返回:
      a new datasource builder instance
    • create

      public static DataSourceBuilder<?> create(ClassLoader classLoader)
      Create a new DataSourceBuilder instance.
      参数:
      classLoader - the classloader used to discover preferred settings
      返回:
      a new DataSource builder instance
    • derivedFrom

      public static DataSourceBuilder<?> derivedFrom(DataSource dataSource)
      Create a new DataSourceBuilder instance derived from the specified data source. The returned builder can be used to build the same type of DataSource with username, password, url and driverClassName properties copied from the original when not specifically set.
      参数:
      dataSource - the source DataSource
      返回:
      a new DataSource builder
      从以下版本开始:
      2.5.0
    • findType

      public static Class<? extends DataSource> findType(ClassLoader classLoader)
      Find the DataSource type preferred for the given classloader.
      参数:
      classLoader - the classloader used to discover preferred settings
      返回:
      the preferred DataSource type