From 41f20b2db39f97659e54d7f00b8ab5558e480814 Mon Sep 17 00:00:00 2001 From: PIGCLOUD Date: Wed, 29 Jul 2026 20:30:22 +0800 Subject: [PATCH] =?UTF-8?q?fix(data):=20=E5=BB=B6=E8=BF=9F=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=20Feign?= =?UTF-8?q?=20=E5=AE=A2=E6=88=B7=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pigx/common/data/mybatis/MybatisPlusConfiguration.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/mybatis/MybatisPlusConfiguration.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/mybatis/MybatisPlusConfiguration.java index 94ede760e..71039219f 100644 --- a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/mybatis/MybatisPlusConfiguration.java +++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/mybatis/MybatisPlusConfiguration.java @@ -42,6 +42,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Primary; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -118,13 +119,16 @@ public class MybatisPlusConfiguration implements WebMvcConfigurer { /** * 数据权限拦截器 + *

+ * 远程数据权限客户端延迟到首次权限计算时解析,避免 MyBatis 在应用启动期创建 + * Feign 子上下文,进而与 MVC、安全拦截器等业务扩展形成循环初始化。 * * @return DataScopeInterceptor */ @Bean @ConditionalOnMissingBean @ConditionalOnBean(UserContextHolder.class) - public DataScopeInterceptor dataScopeInterceptor(RemoteDataScopeService dataScopeService, + public DataScopeInterceptor dataScopeInterceptor(@Lazy RemoteDataScopeService dataScopeService, UserContextHolder userContextHolder) { DataScopeInnerInterceptor dataScopeInnerInterceptor = new DataScopeInnerInterceptor(); dataScopeInnerInterceptor.setDataScopeHandle(new PigxDefaultDataScopeHandle(dataScopeService, userContextHolder));