Spring Boot 多数据源配置
2022/11/23 23:23:54
本文主要是介绍Spring Boot 多数据源配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.1. 手动切换数据源
application.properties
# Order # 如果用Druid作为数据源,应该用url属性,而不是jdbc-url spring.datasource.order.jdbc-url=jdbc:mysql://localhost:3306/order?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&useSSL=false spring.datasource.order.username=root spring.datasource.order.password=123456 spring.datasource.order.driver-class-name=com.mysql.cj.jdbc.Driver # Stock spring.datasource.stock.jdbc-url=jdbc:mysql://localhost:3306/stock?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&useSSL=false spring.datasource.stock.username=root spring.datasource.stock.password=123456 spring.datasource.stock.driver-class-name=com.mysql.cj.jdbc.Driver # Account spring.datasource.account.jdbc-url=jdbc:mysql://localhost:3306/account?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&useSSL=false spring.datasource.account.username=root spring.datasource.account.password=123456 spring.datasource.account.driver-class-name=com.mysql.cj.jdbc.Driver
配置数据源
DataSourceConfig.java
package com.cjs.example.config; import com.alibaba.druid.pool.DruidDataSource; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; import com.zaxxer.hikari.HikariDataSource; import org.mybatis.spring.SqlSessionFactoryBean; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import javax.sql.DataSource; import java.util.HashMap; import java.util.Map; @Configuration public class DataSourceConfig { @Bean("orderDataSource") @ConfigurationProperties(prefix = "spring.datasource.order") public DataSource orderDataSource() { // return new HikariDataSource(); // return new DruidDataSource(); return DataSourceBuilder.create().build(); } @Bean("accountDataSource") @ConfigurationProperties(prefix = "spring.datasource.account") public DataSource accountDataSource() { // return new HikariDataSource(); // return new DruidDataSource(); return DataSourceBuilder.create().build(); } @Bean("stockDataSource") @ConfigurationProperties(prefix = "spring.datasource.stock") public DataSource stockDataSource() { // return new HikariDataSource(); // return new DruidDataSource(); return DataSourceBuilder.create().build(); } @Primary @Bean("dynamicDataSource") public DataSource dynamicDataSource(@Qualifier("orderDataSource") DataSource orderDataSource, @Qualifier("accountDataSource") DataSource accountDataSource, @Qualifier("stockDataSource") DataSource stockDataSource) { Map<Object, Object> dataSourceMap = new HashMap<>(3); dataSourceMap.put(DataSourceKey.ORDER.name(), orderDataSource); dataSourceMap.put(DataSourceKey.STOCK.name(), stockDataSource); dataSourceMap.put(DataSourceKey.ACCOUNT.name(), accountDataSource); DynamicRoutingDataSource dynamicRoutingDataSource = new DynamicRoutingDataSource(); dynamicRoutingDataSource.setDefaultTargetDataSource(orderDataSource); dynamicRoutingDataSource.setTargetDataSources(dataSourceMap); return dynamicRoutingDataSource; } /* https://baomidou.com/pages/3b5af0/ */ @Bean public MybatisSqlSessionFactoryBean sqlSessionFactoryBean(@Qualifier("dynamicDataSource") DataSource dataSource) { MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); // sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mappers/*.xml")); return sqlSessionFactoryBean; } }
由于是MyBatsi-Plus,所以配的是MybatisSqlSessionFactoryBean,如果是MyBatis,则应该是SqlSessionFactoryBean
标签:c++,对象模型,函数,static,编辑,参数,编写,系统 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。
这篇关于Spring Boot 多数据源配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署