diff --git a/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/framework/BusinessDataPermissionConfiguration.java b/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/framework/BusinessDataPermissionConfiguration.java index 174049ad..5f9a19c8 100644 --- a/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/framework/BusinessDataPermissionConfiguration.java +++ b/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/framework/BusinessDataPermissionConfiguration.java @@ -7,6 +7,8 @@ import org.springframework.boot.autoconfigure.AutoConfigurationPackages; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; +import org.springframework.util.StringUtils; import java.util.LinkedHashSet; import java.util.Set; @@ -18,14 +20,12 @@ import java.util.Set; public class BusinessDataPermissionConfiguration { @Bean - public BusinessDataPermissionEntityScanner businessDataPermissionEntityScanner(BeanFactory beanFactory, ApplicationContext applicationContext) { + public BusinessDataPermissionEntityScanner businessDataPermissionEntityScanner(BeanFactory beanFactory, ApplicationContext applicationContext, Environment environment) { Set basePackages = new LinkedHashSet<>(); + addConfiguredBasePackages(environment, basePackages); if (AutoConfigurationPackages.has(beanFactory)) { basePackages.addAll(AutoConfigurationPackages.get(beanFactory)); } - if (basePackages.isEmpty()) { - basePackages.add("com.zt"); - } ClassLoader classLoader = applicationContext != null ? applicationContext.getClassLoader() : Thread.currentThread().getContextClassLoader(); @@ -35,6 +35,21 @@ public class BusinessDataPermissionConfiguration { return new BusinessDataPermissionEntityScanner(basePackages, classLoader); } + private void addConfiguredBasePackages(Environment environment, Set basePackages) { + if (environment == null) { + return; + } + String configured = environment.getProperty("zt.info.base-package"); + if (!StringUtils.hasText(configured)) { + return; + } + for (String pkg : configured.split("[,;\\s]+")) { + if (StringUtils.hasText(pkg)) { + basePackages.add(pkg.trim()); + } + } + } + @Bean public CompanyDataPermissionRuleCustomizer autoCompanyDataPermissionRuleCustomizer(BusinessDataPermissionEntityScanner scanner) { return rule -> scanner.getEntityMetadata().forEach(metadata -> {