> classPath = ClassUtil.scanClasses(doScan);
for (Class> clazz : classPath) {
// 跳过非ee的mapper,比如瞎几把写的接口,没有继承BaseEsMapper,继承了的推入容器
diff --git a/easy-es-solon-test/pom.xml b/easy-es-solon-test/pom.xml
index 7aa616e2..6e0e797b 100644
--- a/easy-es-solon-test/pom.xml
+++ b/easy-es-solon-test/pom.xml
@@ -4,7 +4,7 @@
org.dromara.easy-es
easy-es
- 2.1.0
+ 3.0.0
easy-es-solon-test
diff --git a/easy-es-spring-test/pom.xml b/easy-es-spring-test/pom.xml
index aa35dde5..ae429b70 100644
--- a/easy-es-spring-test/pom.xml
+++ b/easy-es-spring-test/pom.xml
@@ -6,7 +6,7 @@
org.dromara.easy-es
easy-es
- 2.1.0
+ 3.0.0
easy-es-spring-test
diff --git a/easy-es-spring/pom.xml b/easy-es-spring/pom.xml
index 86c040e3..4a50bde8 100644
--- a/easy-es-spring/pom.xml
+++ b/easy-es-spring/pom.xml
@@ -6,7 +6,7 @@
org.dromara.easy-es
easy-es-parent
- 2.1.0
+ 3.0.0
../easy-es-parent
diff --git a/easy-es-spring/src/main/java/org/dromara/easyes/spring/MapperScannerConfigurer.java b/easy-es-spring/src/main/java/org/dromara/easyes/spring/MapperScannerConfigurer.java
index 52da97f9..3572632e 100644
--- a/easy-es-spring/src/main/java/org/dromara/easyes/spring/MapperScannerConfigurer.java
+++ b/easy-es-spring/src/main/java/org/dromara/easyes/spring/MapperScannerConfigurer.java
@@ -67,12 +67,13 @@ public class MapperScannerConfigurer
// 取变量
this.basePackage = Optional.ofNullable(this.basePackage)
- .map(getEnvironment()::resolvePlaceholders).orElse(null);
+ .map(getEnvironment()::resolvePlaceholders).orElse(EMPTY_STR);
// 做扫包的操作了、与注解扫包类似,只不过这里是spring配置方式
// 在mybatis中配置了很多扫描拦截属性,这里放到后面拓展
ClassPathMapperScanner scanner = new ClassPathMapperScanner(beanDefinitionRegistry, getEnvironment());
scanner.registerFilters();
- scanner.doScan(this.basePackage);
+ String[] packages = this.basePackage.split(COMMA);
+ scanner.doScan(packages);
}
private String getPropertyValue(String propertyName, PropertyValues values) {
diff --git a/easy-es-spring/src/main/java/org/dromara/easyes/spring/annotation/MapperScannerRegister.java b/easy-es-spring/src/main/java/org/dromara/easyes/spring/annotation/MapperScannerRegister.java
index ed1073a3..59c651f6 100644
--- a/easy-es-spring/src/main/java/org/dromara/easyes/spring/annotation/MapperScannerRegister.java
+++ b/easy-es-spring/src/main/java/org/dromara/easyes/spring/annotation/MapperScannerRegister.java
@@ -1,11 +1,14 @@
package org.dromara.easyes.spring.annotation;
+import org.dromara.easyes.common.utils.LogUtils;
import org.dromara.easyes.spring.MapperScannerConfigurer;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
+import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.annotation.AnnotationAttributes;
+import org.springframework.core.env.Environment;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.util.StringUtils;
@@ -13,12 +16,20 @@ import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
+import static org.dromara.easyes.common.constants.BaseEsConstants.COMMA;
+
/**
* 注册bean
*
* Copyright © 2021 xpc1024 All Rights Reserved
**/
-public class MapperScannerRegister implements ImportBeanDefinitionRegistrar {
+public class MapperScannerRegister implements ImportBeanDefinitionRegistrar, EnvironmentAware {
+ private Environment environment;
+
+ @Override
+ public void setEnvironment(Environment environment) {
+ this.environment = environment;
+ }
@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
@@ -27,9 +38,19 @@ public class MapperScannerRegister implements ImportBeanDefinitionRegistrar {
// 默认已注解标记为主,如果没有则尝试寻找easy-es配置 scan
if (mapperScanAttrs != null) {
List basePackages = Arrays.stream(mapperScanAttrs.getStringArray("value"))
- .filter(StringUtils::hasText).collect(Collectors.toList());
+ .filter(StringUtils::hasText)
+ .map(map -> {
+ // 判断是否需要处理${}变量
+ if (map.contains("${") && map.contains("}")) {
+ String basePackage = this.environment.resolvePlaceholders(map);
+ LogUtils.formatInfo("Scan Easy-Es Mapper[%s -> %s]", map, basePackage);
+ return basePackage;
+ }
+ return map;
+ })
+ .collect(Collectors.toList());
// 注册bean
- registerBeanDefinitions(registry, generateBaseBeanName(importingClassMetadata, 0),
+ registerBeanDefinitions(registry, generateBaseBeanName(importingClassMetadata),
StringUtils.toStringArray(basePackages));
}
}
@@ -38,19 +59,20 @@ public class MapperScannerRegister implements ImportBeanDefinitionRegistrar {
* 通过BeanDefinition注册bean,在bean注册前处理interface中bean参数问题,interface与普通bean不同,
* 使用了jdk动态代理,需要确定注册的实际interface class,就需要通过BeanDefinition来追加属性,
* 当前使用到了spring的构造
- * @param registry spring bean扫码注册器
+ *
+ * @param registry spring bean扫码注册器
* @param basePackages 扫码的包
*/
void registerBeanDefinitions(BeanDefinitionRegistry registry, String beanName, String... basePackages) {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MapperScannerConfigurer.class);
- builder.addPropertyValue("basePackage", String.join(",", basePackages));
+ builder.addPropertyValue("basePackage", String.join(COMMA, basePackages));
// for spring-native
builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
registry.registerBeanDefinition(beanName, builder.getBeanDefinition());
}
- private static String generateBaseBeanName(AnnotationMetadata importingClassMetadata, int index) {
- return importingClassMetadata.getClassName() + "#" + MapperScannerRegister.class.getSimpleName() + "#" + index;
+ private static String generateBaseBeanName(AnnotationMetadata importingClassMetadata) {
+ return importingClassMetadata.getClassName() + "#" + MapperScannerRegister.class.getSimpleName() + "#" + 0;
}
}
diff --git a/easy-es-spring/src/main/java/org/dromara/easyes/spring/config/EasyEsConfiguration.java b/easy-es-spring/src/main/java/org/dromara/easyes/spring/config/EasyEsConfiguration.java
index e4ec3633..7a50d9d3 100644
--- a/easy-es-spring/src/main/java/org/dromara/easyes/spring/config/EasyEsConfiguration.java
+++ b/easy-es-spring/src/main/java/org/dromara/easyes/spring/config/EasyEsConfiguration.java
@@ -1,5 +1,6 @@
package org.dromara.easyes.spring.config;
+import lombok.NonNull;
import lombok.Setter;
import org.dromara.easyes.common.property.EasyEsDynamicProperties;
import org.dromara.easyes.common.property.EasyEsProperties;
@@ -10,8 +11,10 @@ import org.dromara.easyes.core.index.AutoProcessIndexSmoothlyStrategy;
import org.dromara.easyes.spring.factory.IndexStrategyFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
import org.springframework.util.Assert;
import java.util.Map;
@@ -22,23 +25,28 @@ import java.util.Map;
*/
@Setter
@Configuration
-public class EasyEsConfiguration implements InitializingBean {
+public class EasyEsConfiguration implements InitializingBean, EnvironmentAware {
+ private Environment environment;
+ @Autowired(required = false)
private EasyEsProperties easyEsProperties;
+ @Autowired(required = false)
private EasyEsDynamicProperties easyEsDynamicProperties;
- @Autowired
- public EasyEsConfiguration(EasyEsProperties easyEsProperties, EasyEsDynamicProperties easyEsDynamicProperties) {
- this.easyEsProperties = easyEsProperties;
- this.easyEsDynamicProperties = easyEsDynamicProperties;
+ @Override
+ public void setEnvironment(@NonNull Environment environment) {
+ this.environment = environment;
}
- @Override
- public void afterPropertiesSet() throws Exception {
- Assert.notNull(this.easyEsProperties, "easyEsProperties must is A bean. easy-es配置类必须给配置一个bean");
+ public void afterPropertiesSet() {
+ Boolean enable = environment.getProperty("easy-es.enable", Boolean.class, Boolean.TRUE);
+ if (enable) {
+ Assert.notNull(this.easyEsProperties, "easyEsProperties must is A bean. easy-es配置类必须给配置一个bean");
+ }
}
+
@Bean
public IndexStrategyFactory indexStrategyFactory() {
return new IndexStrategyFactory();
diff --git a/easy-es-springboot-sample/pom.xml b/easy-es-springboot-sample/pom.xml
index d76dc42f..36a44332 100644
--- a/easy-es-springboot-sample/pom.xml
+++ b/easy-es-springboot-sample/pom.xml
@@ -9,7 +9,7 @@
org.dromara.easy-es
easy-es
- 2.1.0
+ 3.0.0
diff --git a/easy-es-springboot-test/pom.xml b/easy-es-springboot-test/pom.xml
index e078968c..fd014845 100644
--- a/easy-es-springboot-test/pom.xml
+++ b/easy-es-springboot-test/pom.xml
@@ -7,7 +7,7 @@
org.dromara.easy-es
easy-es
- 2.1.0
+ 3.0.0
easy-es-springboot-test
diff --git a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/interceptor/TenantLineInnerInterceptor.java b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/interceptor/TenantLineInnerInterceptor.java
index 9618eb95..3999c68c 100644
--- a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/interceptor/TenantLineInnerInterceptor.java
+++ b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/interceptor/TenantLineInnerInterceptor.java
@@ -52,7 +52,7 @@ public class TenantLineInnerInterceptor implements Interceptor {
// wrapper.eq("tenantId", "1");
// return invocation.proceed();
// }
- System.out.println("增则拦截方法");
+ System.out.println("easy-es intercept...");
return invocation.proceed();
}
}
diff --git a/pom.xml b/pom.xml
index 6194b2fd..be95b5d9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.dromara.easy-es
easy-es
- 2.1.0
+ 3.0.0
easy-es
easy use for elastic search