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

简介:

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来切换数据源。

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

本文作者:小锅盖

原文链接


相关文章
|
开发框架 .NET 数据库
.NETCore 获取数据库上下文[实例的方法和配置连接字符串
.NETCore 获取数据库上下文[实例的方法和配置连接字符串
704 1
|
7天前
|
Java 关系型数据库 MySQL
【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题
【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题
【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题
|
1月前
|
Java 微服务
|
9月前
|
SQL Java 数据库连接
MyBatis动态数据源配置(动态配置字段,库 适合简单逻辑)
MyBatis动态数据源配置(动态配置字段,库 适合简单逻辑)
87 0
|
10月前
|
前端开发 Java 数据库
SpringBoot之自动配置类的解析和过滤机制
1.提炼三句话 整体来讲Spring Boot是通过条件注解、条件评估器和自动配置导入器等机制来实现自动配置的。 条件评估器来判断是否需要加载某个自动配置类。条件评估器通常被定义在“org.springframework.boot.autoconfigure.condition”包中,例如,ClassCondition、BeanCondition、MissingBeanCondition、WebApplicationCondition等 条件注解来判断是否需要加载某个自动配置类。条件注解通常被定义在“org.springframework.boot.autoconfigure.conditi
115 0
EMQ
|
SQL JSON 监控
连接格式优化,支持自定义
12月eKuiper团队继续专注于1.8.0版本新功能的开发,重构了外部连接(source/sink)的格式机制,更加清晰地分离了连接、格式和Schema,同时支持了格式的自定义。
EMQ
102 0
连接格式优化,支持自定义
|
Java
启动SpringBoot项目,报错:无法配置数据源:未指定“url”属性,并且无法配置嵌入式数据源。求解求解
启动SpringBoot项目,报错:无法配置数据源:未指定“url”属性,并且无法配置嵌入式数据源。求解求解
359 0
启动SpringBoot项目,报错:无法配置数据源:未指定“url”属性,并且无法配置嵌入式数据源。求解求解
|
JSON 分布式计算 Java
JSON数据源、JDBC数据源、 standalone集群测试3 | 学习笔记
快速学习JSON数据源、JDBC数据源、standalone集群测试3
107 0
|
存储 缓存 编解码
Solr解析器通用的查询参数
本文主要介绍下Solr解析器中通用的查询参数。这些参数能够在标准查询解析器、DisMax查询解析器及eDisMax查询解析器中通用。 下表总结了Solr通用的查询参数,支持标准的、DisMax、eDisMax查询请求。
137 0
|
网络协议 数据库 Java
JFinal 表自动绑定插件实现,实现零配置,支持多数据源
以mysql数据库实现为例,其它的db也可基于这种方式自己实现 大概的思路是这样的,为了简少配置,所以不使用注解的方式 首先需要一个工具类来拿到所有的Model类大体的实现方式如下 package com.