- springboot配置多数据源,持久层实现自动切换
- pom文件配置
- application.yml配置
- 配置一个控制器,并启动程序(启动类无需进行配置,pom依赖导入后,直接在持久层接口使用@DS()注解即可)
- 最主要的变化是持久层接口
- 测试
当前文章是持久层注解实现数据源切换,jdbc实现数据源切换请点击
springboot配置多数据源,持久层实现自动切换原使用jdbc方式进行连接,现需要改为在xml文件中实现查询
pom文件配置application.yml配置org.springframework.boot spring-boot-starter-jdbcorg.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-autoconfigure2.5.7 com.oracle.database.jdbc ojdbc821.1.0.0 com.baomidou dynamic-datasource-spring-boot-starter3.4.1
server: port: 80 spring: datasource: dynamic: primary: master #设置默认的数据源或者数据源组,默认值即为master strict: false #设置严格模式,默认false不启动,启动后在未匹配到指定数据源时,会抛出异常,不启动则使用默认数据源 datasource: master: #主数据源 username: username password: password url: jdbc:oracle:thin:@ip:1521:newtest driver-class-name: oracle.jdbc.OracleDriver db2: #子数据源 username: username2 password: password2 url: jdbc:oracle:thin:@ip:1521:newtest driver-class-name: oracle.jdbc.OracleDriver配置一个控制器,并启动程序(启动类无需进行配置,pom依赖导入后,直接在持久层接口使用@DS()注解即可)
package com.heiaxin.demo.controller.DemoController; import com.heiaxin.demo.service.DemoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.sql.SQLException; import java.util.List; import java.util.Map; @RestController public class DemoController { @Autowired DemoService service; @GetMapping("/getDemo1") public List最主要的变化是持久层接口
@Mapper public interface DemoMapper{ Integer getDemo(); @DS("db2) // 设置getDemo2方法使用数据源db2进行查询 Integer getDemo2(); }测试
直接在流程器访问:http://localhost/getDemo1,http://localhost/getDemo2 ,
这里demo1和demo2可以在xml中写一个不同数据源,同表的count(1) 查询,将master数据源同表数据insert10条,db2同表数据insert20条,页面上会展示getDemo1为10,getDemo2为20.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)