springboot多数据源

news/2024/11/24 19:59:11/

1.添加多个数据原配置,这里是一盒postgres一个ck两个数据库

server:port: 9002spring:main:allow-bean-definition-overriding: trueapplication:name: extranet_serverservlet:multipart:enabled: truemax-file-size: 200MBmax-request-size: 200MBpostgredatasource:driver-class-name: org.postgresql.Driverurl: jdbc:postgresql://192.168.1.44:5433/cli_serverusername: postgrespassword:ckdatasource:url: jdbc:clickhouse://192.168.1.44:8123/cli_serverusername:password:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: ru.yandex.clickhouse.ClickHouseDriverdruid:initial-size: 8min-idle: 1max-active: 20max-wait: 60000time-between-eviction-runsMillis: 60000min-evictable-idle-timeMillis: 300000validation-query: select 1test-while-idle: truetest-on-borrow: falsetest-on-return: falsepool-prepared-statements: truemax-open-prepared-statements: 20max-pool-prepared-statement-per-connection-size: 20filters: statconnection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000use-global-data-source-stat: trueredis:host: 192.168.1.111port: 6379password: 123456database: 5lettuce:pool:max-wait: -1max-active: 8min-idle: 5max-total: 500timeout: 5000

在Spring Boot中配置多数据源可以通过以下步骤实现:

  1. 在pom.xml文件中添加依赖:
 

复制代码

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </dependency>

  1. 在application.properties文件中配置数据源信息:
 

复制代码

# 主数据源 spring.datasource.url=jdbc:mysql://localhost:3306/main_db?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver # 从数据源 spring.datasource.secondary.url=jdbc:mysql://localhost:3306/secondary_db?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.secondary.username=root spring.datasource.secondary.password=123456 spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver

  1. 创建两个数据源的配置类:
 

复制代码

@Configuration public class MainDataSourceConfig { @Bean @Primary @ConfigurationProperties(prefix = "spring.datasource") public DataSource mainDataSource() { return DataSourceBuilder.create().build(); } } @Configuration public class SecondaryDataSourceConfig { @Bean @ConfigurationProperties(prefix = "spring.datasource.secondary") public DataSource secondaryDataSource() { return DataSourceBuilder.create().build(); } }

  1. 在需要使用数据源的地方注入对应的数据源即可:
 

复制代码

@Service public class UserServiceImpl implements UserService { @Autowired @Qualifier("mainDataSource") private DataSource mainDataSource; @Autowired @Qualifier("secondaryDataSource") private DataSource secondaryDataSource; // ... }

在指定的Mapper中切换数据源可以通过以下步骤实现:

  1. 在需要切换数据源的Mapper接口上添加@Mapper注解,并使用@Qualifier注解指定对应的数据源:
 

复制代码

@Mapper @Qualifier("secondaryDataSource") public interface SecondaryUserMapper { // ... }

  1. 在需要切换数据源的方法上使用@Select注解,并在SQL语句中使用${}占位符引用参数:
 

复制代码

@Select("SELECT * FROM user WHERE id = ${id}") List<User> getUserById(@Param("id") Long id);

  1. 在需要切换数据源的Service实现类中注入对应的Mapper即可:
 

复制代码

@Service public class UserServiceImpl implements UserService { @Autowired private MainUserMapper mainUserMapper; @Autowired private SecondaryUserMapper secondaryUserMapper; @Override public List<User> getUserById(Long id) { if (id % 2 == 0) { return mainUserMapper.getUserById(id); } else { return secondaryUserMapper.getUserById(id); } } // ... }

这样就可以根据需要在不同的Mapper中切换数据源了。


http://www.ppmy.cn/news/171754.html

相关文章

基于Java的飞机大战游戏的设计与实现(含源文件)

欢迎添加微信互相交流学习哦&#xff01; 项目源码&#xff1a;https://gitee.com/oklongmm/biye 基于Java的飞机大战游戏的设计与实现 摘 要 现如今&#xff0c;随着智能手机的兴起与普及&#xff0c;加上4G&#xff08;the 4th Generation mobile communication &#xff…

基于Java的飞机大战游戏的设计与实现论文

源码下载 http://www.byamd.xyz/hui-zong-1/摘 要 现如今&#xff0c;随着智能手机的兴起与普及&#xff0c;加上4G&#xff08;the 4th Generation mobile communication &#xff0c;第四代移动通信技术&#xff09;网络的深入&#xff0c;越来越多的IT行业开始向手机行业转…

自用连接:android经典教程,软件开发,项目管理,论坛链接,连接link

record evolution email configure on ubunt 12.04.1 64 bit. http://wiki.uttyler.edu/display/outlook/Linux-Ubuntu+Exchange+setup+via+Evolution 个人作品,mp3播放器:android statusbar 图标定制 apk: http://code.google.com/p/audio-player-qingcai/downloads/…

Xbox One Dance Central Spotlight 歌曲列表

全部曲单在此 网站&#xff1a;http://www.harmonixmusic.com/games/dance-central/songs/ CORE SOUNDTRACK 1. Counting Stars – OneRepublic 2. Diamonds – Rihanna 3. Happy – Pharrell Williams 4. I Wish – Cher Lloyd 5. …

超薄型Xbox 360 Slim主机将现身E3游戏展

4月28日消息&#xff0c;据国外媒体报道&#xff0c;互联网上近日有传言称&#xff0c;超薄型的Xbox 360 Slim主机有可能在今年的E3游戏展上亮相。 作为微软公司的一款畅销游戏主机&#xff0c;Xbox 360的游戏得到了业界的广泛好评。但该款主机笨重硕大的身躯却一直为众多玩家所…

xbox360使用_新的Xbox360 Hack适用于所有360型号

xbox360使用 Dubbed the “Reset Glitch Hack” (it uses a pulse of electricity to disrupt communication with a specific chip on the 360 motherboard during the authentication process thus opening the door for unsigned code and a boot loader) it’s an effectiv…

xbox360版本之分

2005-11-22 发售精简版 (Core)&#xff1a;白色 / 无硬盘 / 主板代号 Xenon&#xff08;现已停产&#xff09; 2005-11-22 发售豪华版 (Premium)&#xff1a;白色 / 20 GB 硬盘 / 主板代号 Xenon &#xff08;现已停产&#xff09; 2007-03-27 公布精英版 (Elite)&#xff1a;黑…

【XBOX360】Xbox360 RGH3.0 刷机教程

Xbox360 RGH3.0 刷机教程 Xbox360 RGH3.0 介绍 RGH 3.0 是最新的Xbox360自制系统刷机固件&#xff0c;可以不需要安装脉冲芯片&#xff0c;使用Xbox360自带的南桥芯片&#xff0c;就可以让Xbox360完成刷机&#xff0c;运行自制系统&#xff0c;是国外大神15432开发出的最新的…