给网友朋友们带来一篇springboot相关的编程文章,网友那温韦根据主题投稿了本篇教程内容,涉及到springboot、@DS注解数据源切换、springboot、、数据源切换、springboot @DS注解数据源切换相关内容,已被156网友关注,下面的电子资料对本篇知识点有更加详尽的解释。
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"); }
最后
好了,就说这么多了,数据源切换的方式、策略有多种,比如按包区分不同数据源的方式、手动配置的数据源的方式,以及@DS注解的方式,该方式的最大特点,相对比较灵活,配置简洁易懂,后期维护及迭代比较乐观。
到此这篇关于springboot集成@DS注解实现数据源切换的方法示例的文章就介绍到这了,更多相关springboot @DS注解数据源切换内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!