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就不会进行配置。