From 3ef1ed59ad0c5badba22868cf770ac8630044863 Mon Sep 17 00:00:00 2001 From: chxlay Date: Sat, 7 Dec 2024 17:04:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86@UseDataSource?= =?UTF-8?q?=E5=8F=96=E5=80=BC=E5=8A=A8=E6=80=81=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E6=94=AF=E6=8C=81=E5=A4=84=E7=90=86=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1:DataSourceProcessor 为处理器接口 2:DelegatingDataSourceProcessor 为DataSourceProcessor的委托类,目的增强扩大 DataSourceProcessor类或对象的结构 3:ParamIndexDataSourceProcessor 简单参数所以读取的支持处理器 4:SpelExpressionDataSourceProcessor 支持SPEL 表达式的处理器类 --- .../processor/DelegatingDataSourceProcessor.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/datasource/processor/DelegatingDataSourceProcessor.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/datasource/processor/DelegatingDataSourceProcessor.java index 9f0c9db8..e15f1b92 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/datasource/processor/DelegatingDataSourceProcessor.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/datasource/processor/DelegatingDataSourceProcessor.java @@ -9,12 +9,16 @@ import java.util.List; /** * DataSourceProcessor 委托扩展类,对 DataSourceProcessor 结构进行扩大和增强 + * 如果多个实例化,建议通过 DelegatingDataSourceProcessor.with(多个解析处理器实例) 方式进行实例化。 + * 需要注意的是委托解析处理器之间有先后顺序,一点排列前面的解析处理器正常处理后,将直接返回处理值,不再往下传递处理 * * @author Alay * @since 2024-12-07 15:38 */ public class DelegatingDataSourceProcessor implements DataSourceProcessor { - + /** + * 多个处理器委托集合(使用时请注意 DataSourceProcessor 的顺序) + */ private final List delegates; @@ -43,7 +47,7 @@ public class DelegatingDataSourceProcessor implements DataSourceProcessor { @Override public String process(String dataSourceKey, Object mapper, Method method, Object[] arguments) { for (DataSourceProcessor delegate : delegates) { - // 使用时请注意 DataSourceProcessor 的顺序,一旦匹配到处理器将进行中断处理并返回处理结果 + // 使用时请注意 DataSourceProcessor 的顺序,一旦匹配到处理器将进行终止处理链,并返回当前处理结果 String returnKey = delegate.process(dataSourceKey, mapper, method, arguments); if (null != returnKey) return returnKey; }