多数据源 2.3.2 发布:支持 spel 从参数获取数据源

动态数据源Spring Boot启动器
dynamic-datasource-spring-boot-starter是一个基于Spring Boot的快速集成多数据源的启动器,支持Jdk1.7+及多个Spring Boot版本。最新版2.3.2新增特性包括自动适配MyBatis Plus,以及支持使用SpEL参数获取数据源,如根据租户或用户ID切换数据源。

dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。

其支持 Jdk 1.7+, SpringBoot 1.4.x 1.5.x 2.0.x。最新版为2.3.2

演示例子 可参考项目下的samples目录

2.3.x版本主要做了以下改动。

  • 重构创建数据源类。废弃DataSourceFactory,改为Bean的DynamicDataSourceCreator。

  • 自动适配mybatisPlus。 移除参数的mp-enabled。

  • 新特性支持spel参数获取数据源。(重要 重要 重要)

    @DS("#session.tenantName")//从session获取
        public List selectSpelBySession() {
            return userMapper.selectUsers();
        }
    
        @DS("#header.tenantName")//从header获取
        public List selectSpelByHeader() {
            return userMapper.selectUsers();
        }
    
        @DS("#tenantName")//使用spel从参数获取
        public List selectSpelByKey(String tenantName) {
            return userMapper.selectUsers();
        }
    
        @DS("#user.tenantName")//使用spel从复杂参数获取
        public List selecSpelByTenant(User user) {
            return userMapper.selectUsers();
        }

如果你还想对spel解析的参数进行进一步处理,请注入DynamicDataSourceSpelResolver。

默认的DefaultDynamicDataSourceSpelResolver 没有对解析到的参数进行处理直接返回。

有了spel的支持,真正算得上动态了。 比如根据租户来切换数据源,比如根据用户id来切换数据源。

本文来自云栖社区合作伙伴“开源中国”

本文作者:小锅盖

原文链接


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值