千家信息网

springboot怎么集成@DS注解实现数据源切换

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍"springboot怎么集成@DS注解实现数据源切换",在日常操作中,相信很多人在springboot怎么集成@DS注解实现数据源切换问题上存在疑惑,小编查阅了各式资料,整理出简单好
千家信息网最后更新 2025年01月31日springboot怎么集成@DS注解实现数据源切换

这篇文章主要介绍"springboot怎么集成@DS注解实现数据源切换",在日常操作中,相信很多人在springboot怎么集成@DS注解实现数据源切换问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"springboot怎么集成@DS注解实现数据源切换"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    启用@DS实现数据源切换

    POM内添加核心jar包

                        com.baomidou            dynamic-datasource-spring-boot-starter            3.0.0        

    yml配置

    spring:  datasource:    #配置hikari连接池    hikari:      minimum-idle: 4      maximum-pool-size: 16      connection-timeout: 10000      idle-timeout: 30000      connection-init-sql: set names utf8mb4    #动态数据源配置    dynamic:      #主数据源,默认启用      primary: business      datasource:        #数据源1        business:          driver-class-name: com.mysql.cj.jdbc.Driver          url: jdbc:mysql://localhost:3306/db_business?useUnicode=true&characterEncoding=utf-8          username: ****          password: ****        #数据源2        user:          driver-class-name: com.mysql.cj.jdbc.Driver          url: jdbc:mysql://localhost:3306/db_user?useUnicode=true&characterEncoding=utf-8          username: ****          password: ****        #数据源3        order:          driver-class-name: com.mysql.cj.jdbc.Driver          url: jdbc:mysql://localhost:3306/db_order?useUnicode=true&characterEncoding=utf-8          username: ****          password: ****

    "核心"-使用@DS注解

    使用@DS注解的核心是什么呢?

    1.注解添加在dao.mapper上无效
    2.注解添加到interface Service类上无效
    3.注解添加到interface Service方法上无效

    那么,此注解应该如何使用呢?

    添加@DS注解到实现类或者实现类的方法上才可以

    当注解添加到类上,意味着此类里的方法都使用此数据源;
    当注解添加到方法上时,意味着此方法上使用的数据源优先级高于其他一切配置

    @Service@DS("slave")public class UserServiceImpl implements UserService {   @Autowired  private JdbcTemplate jdbcTemplate;   public List> selectAll() {    return  jdbcTemplate.queryForList("select * from user");  }  @Override  @DS("slave_1")  public List> selectByCondition() {    return  jdbcTemplate.queryForList("select * from user where age >10");  }

    到此,关于"springboot怎么集成@DS注解实现数据源切换"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

    0