1.DataSource Configuration
1.1 Default configuration Application.xml
spring.datasource.url=jdbc:mysql://localhost/testspring.datasource.username=rootspring.datasource.password=*** *
Spring.datasource.driver-class-name=com.mysql.jdbc.driverspring.datasource.type= Com.zaxxer.hikari.HikariDataSource
Need to join the dependency in Pom.xml (I used Mybatis+mysql)
<Dependency> <groupId>Org.mybatis</groupId> <Artifactid>MyBatis</Artifactid> <version>${mybatis.version}</version> </Dependency> <Dependency> <groupId>Org.mybatis</groupId> <Artifactid>Mybatis-spring</Artifactid> <version>${mybatis-spring.version}</version> </Dependency> <Dependency> <groupId>Org.springframework.boot</groupId> <Artifactid>Spring-boot-starter-web</Artifactid> </Dependency> <Dependency> <groupId>Mysql</groupId> <Artifactid>Mysql-connector-java</Artifactid> </Dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<exclusions>
<exclusion>
<artifactId>tools</artifactId>
<groupId>com.sun</groupId>
</exclusion>
</exclusions>
</dependency>
Take a look
/*** Actual DataSource configurations imported by {@linkdatasourceautoconfiguration}. * * @authorDave Syer *@authorPhillip Webb *@authorStephane Nicoll*/Abstract classdatasourceconfiguration {@SuppressWarnings ("Unchecked") protected<T>T CreateDataSource (datasourceproperties properties, Class<?extendsDatasource>type) { return(T) Properties.initializedatasourcebuilder (). Type (type). Build (); } /*** Tomcat Pool DataSource configuration. */@ConditionalOnClass (org.apache.tomcat.jdbc.pool.DataSource.class) @ConditionalOnProperty (name= "Spring.datasource.type", Havingvalue = "Org.apache.tomcat.jdbc.pool.DataSource", matchifmissing =true) Static classTomcatextendsdatasourceconfiguration {@Bean @ConfigurationProperties (prefix= "Spring.datasource.tomcat") Publicorg.apache.tomcat.jdbc.pool.DataSource DataSource (datasourceproperties properties) {ORG.A Pache.tomcat.jdbc.pool.DataSource DataSource=CreateDataSource (Properties, Org.apache.tomcat.jdbc.pool.DataSource.class); Databasedriver Databasedriver=databasedriver. Fromjdbcurl (Properties.determineurl ()); String Validationquery=Databasedriver.getvalidationquery (); if(Validationquery! =NULL) {Datasource.settestonborrow (true); Datasource.setvalidationquery (Validationquery); } returnDataSource; } } /*** Hikari DataSource configuration. */@ConditionalOnClass (hikaridatasource.class) @ConditionalOnProperty (name= "Spring.datasource.type", Havingvalue = "Com.zaxxer.hikari.HikariDataSource", matchifmissing =true) Static classHikariextendsdatasourceconfiguration {@Bean @ConfigurationProperties (prefix= "Spring.datasource.hikari") Publichikaridatasource DataSource (datasourceproperties properties) {returnCreateDataSource (Properties, Hikaridatasource.class); } } /*** DBCP DataSource configuration. */@ConditionalOnClass (org.apache.commons.dbcp2.BasicDataSource.class) @ConditionalOnProperty (name= "Spring.datasource.type", Havingvalue = "Org.apache.commons.dbcp2.BasicDataSource", matchifmissing =true) Static classDbcp2extendsdatasourceconfiguration {@Bean @ConfigurationProperties (prefix= "SPRING.DATASOURCE.DBCP2") Publicorg.apache.commons.dbcp2.BasicDataSource DataSource (datasourceproperties properties) {returnCreateDataSource (Properties, Org.apache.commons.dbcp2.BasicDataSource.class); } } /*** Generic DataSource configuration. */@ConditionalOnMissingBean (DataSource.class) @ConditionalOnProperty (name= "Spring.datasource.type") Static classGeneric {@Bean PublicDataSource DataSource (datasourceproperties properties) {returnProperties.initializedatasourcebuilder (). build (); } }}
2. Custom DataSource
1.1 Application.xml configuration file
Spring: application: name:data-multidatasource DataSource: type: Com.zaxxer.hikari.HikariDataSource url:jdbc:mysql://localhost:3306/test username:sa Password: * * * * second-datasource: driver-class-name:org.hsqldb.jdbc.jdbcdriver url:jdbc:hsqldb:mem:db2 Username:sa password:****
1.2 Customizing the DataSource configuration
@Configuration Public classsenconddatasourceconfiguration {@Bean @ConfigurationProperties (prefix= "Spring.datasource") PublicDataSource Newdatasource () {returndatasourcebuilder.create (). build (); } @Bean (Name= "Seconddatasource") @ConfigurationProperties (prefix = "Spring.second-datasource") PublicDataSource Seconddatasource () {returndatasourcebuilder.create (). build (); }}
3. Working mechanism
Cond
Reference files:
"1" http://www.liaoxuefeng.com/article/001484212576147b1f07dc0ab9147a1a97662a0bd270c20000
Spring Boot Auto Configuration jdbc