数据源配置
如何配置单数据源?
1.Spring直接配置所需的Bean
-
数据源相关
- DataSource(根据选择的连接池实现决定)
-
事务相关
(可选)- PlatformTransactionManager(DataSourceTransactionManager)
- TransactionManager
-
操作相关
(可选)- JdbcTemplate
可以通过编码的方式注入Bean,也可以通过在applicationContext.xml应用程序上下文中配置bean。
2.SpringBoot做了哪些配置?
-
DataSourceAutoConfiguration 配置 DataSource
-
DataSourceTransactionManagerAutoConfiguration 配置 DataSourceTransactionManager
-
JdbcTemplateAutoConfiguration 配置 JdbcTemplate
符合条件时才进行配置。
1)Spring Boot中默认数据源的发展:
Spring Boot 1.x 默认使用Tomcat的DataSource。
Spring Boot 2.x 默认使用HikariDataSource。
2)数据源相关配置属性:
通用
spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver(可选)
如何配置多数据源?
注意事项:
- 不同数据源的配置要分开
- 关注每次使用的数据源
- 有多个DataSource时系统如何判断
- 对应的设施(事务、ORM等)如何选择DataSource
Spring Boot中的多数据源配置
- 手工配置两组 DataSource 及相关内容
- 与Spring Boot协同工作(二选一)
- 配置 @Primary 类型的Bean【两个数据源有主次之分】
- 排除Spring Boot 的自动配置【两个数据源同等重要】
- DataSourceAutoConfiguration
- DataSourceTransactionManagerAutoConfiguration
- JdbcTemplateAutoConfiguration
应用案例:快速配置多数据源(整合MyBatis)https://juejin.cn/post/6844903957186232327
1)排除SpringBoot的自动配置类 DataSourceAutoConfiguration
2)在application.properties中配置多数据源连接信息
3)手动创建数据库配置类 DataSource
4)分别配置不同数据源的mybatis的SqlSessionFactory
学习文档:极客时间-玩转Spring全家桶