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

posted @ 2019-02-15 15:05  Gggoblin  阅读(246)  评论(0编辑  收藏  举报