Spring配置单数据源
git源码地址:https://gitee.com/Gggoblin/geektime-spring.git
目录结构:(SpringBoot项目启动时会默认执行data.sql和schema.sql)
application.properties 可写可不写,效果一样:
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:
data.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));
运行效果如下图
第一行是datasource的信息:HikariDataSource是SpringBoot的默认数据库连接池(号称java平台最快)
第二行是数据库链接的信息:url以及用户名等
剩下两行就是数据查询结果的数据
git中 还有一份利用原生的Spring实现的单数据源的代码,这里就不放出来了
对比之后发现SpringBoot做的事情有:
DataSourceAutoConfiguration
• 配置 DataSource
DataSourceTransactionManagerAutoConfiguration
• 配置 DataSourceTransactionManager
JdbcTemplateAutoConfiguration
• 配置 JdbcTemplate
符合条件时才进行配置:就是说SpringBoot会在没有手动声明的时候自动配置bean,如果我们手动声明了某个bean,那么SpringBoot就不会进行配置。