温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2022-03-09 16:09:53 来源:亿速云 阅读:1127 作者:iii 栏目:开发技术

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

    启用@DS实现数据源切换

    POM内添加核心jar包

            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
                <version>3.0.0</version>
            </dependency>

    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<Map<String, Object>> selectAll() {
        return  jdbcTemplate.queryForList("select * from user");
      }
      @Override
      @DS("slave_1")
      public List<Map<String, Object>> selectByCondition() {
        return  jdbcTemplate.queryForList("select * from user where age >10");
      }

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

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI