Spring配置单数据源

Posted Gggoblin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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就不会进行配置。

以上是关于Spring配置单数据源的主要内容,如果未能解决你的问题,请参考以下文章

Spring MVC 3.2 Thymeleaf Ajax 片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

Spring boot:thymeleaf 没有正确渲染片段

spring有使用catch做逻辑判断

What's the difference between @Component, @Repository & @Service annotations in Spring?(代码片段