git源碼地址:https://gitee.com/Gggoblin/geektime-spring.gitjava
目錄結構:(SpringBoot項目啓動時會默認執行data.sql和schema.sql)git
application.properties 可寫可不寫,效果同樣:web
management.endpoints.web.exposure.include=*
spring.output.ansi.enabled=ALWAYS
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.hikari.maximumPoolSize=5
spring.datasource.hikari.minimumIdle=5
spring.datasource.hikari.idleTimeout=600000
spring.datasource.hikari.connectionTimeout=30000
spring.datasource.hikari.maxLifetime=1800000
DatasourceDemoApplication:spring
data.sql:sql
INSERT INTO FOO (ID, BAR) VALUES (1, 'aaa');
INSERT INTO FOO (ID, BAR) VALUES (2, 'bbb');
schema.sql:數據庫
CREATE TABLE FOO (ID INT IDENTITY, BAR VARCHAR(64));
運行效果以下圖app
第一行是datasource的信息:HikariDataSource是SpringBoot的默認數據庫鏈接池(號稱java平臺最快)url
第二行是數據庫連接的信息:url以及用戶名等blog
剩下兩行就是數據查詢結果的數據源碼
git中 還有一份利用原生的Spring實現的單數據源的代碼,這裏就不放出來了
對比以後發現SpringBoot作的事情有:
DataSourceAutoConfiguration • 配置 DataSourceDataSourceTransactionManagerAutoConfiguration • 配置 DataSourceTransactionManagerJdbcTemplateAutoConfiguration • 配置 JdbcTemplate符合條件時才進行配置:就是說SpringBoot會在沒有手動聲明的時候自動配置bean,若是咱們手動聲明瞭某個bean,那麼SpringBoot就不會進行配置。