mirror of
https://gitee.com/dromara/easy-es.git
synced 2025-12-06 17:18:57 +08:00
新增功能: 前序迭代已支持了一部分父子类型的查询功能,此版本对父子类型功能闭环,至此,父子类型功能已完整支持,新增功能包括: 1.新增对父子类型索引自动托管及手动API维护的支持 2.新增父子类型通过父id查询的功能 项目调整: 1.从0.9.30版本起调整项目Maven中央仓库中的groupId由io.github.xpc1024调整为cn.easy-es,已发布的老版本不受影响. 2.项目所有包名由com.xpc调整为cn.easy-es打头 3.新增common,annotation,test子模块,并调整了原项目结构,让模块之间耦合进一步降低,提升可读性,更易于维护.为即将迎来的性能测试,压力测试等埋下伏笔. 体验优化: 1.enableMust2filter配置生效范围增加对in,notIn,between等类型查询的支持 2.进一步简化高亮功能的使用门槛,代价是牺牲了少量灵活性,Easy至上! 3.针对自动托管索引的平滑模式,提供了"拉弓还有回头箭"功能,在索引迁移因各种原因迁移失败后,自动清理失败的索引,原索引不受任何影响. 缺陷修复: 1.修复multiMatchQuery查询参数被重复封装2次的缺陷.
70 lines
2.6 KiB
Java
70 lines
2.6 KiB
Java
package cn.easyes.starter.register;
|
|
|
|
import cn.easyes.common.utils.LogUtils;
|
|
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
|
import org.springframework.context.EnvironmentAware;
|
|
import org.springframework.context.ResourceLoaderAware;
|
|
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
|
|
import org.springframework.core.annotation.AnnotationAttributes;
|
|
import org.springframework.core.env.Environment;
|
|
import org.springframework.core.io.ResourceLoader;
|
|
import org.springframework.core.type.AnnotationMetadata;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
import java.util.stream.Collectors;
|
|
|
|
import static cn.easyes.common.constants.BaseEsConstants.ENABLE_PREFIX;
|
|
|
|
/**
|
|
* 注册bean
|
|
* <p>
|
|
* Copyright © 2021 xpc1024 All Rights Reserved
|
|
**/
|
|
public class MapperScannerRegister implements ImportBeanDefinitionRegistrar, ResourceLoaderAware, EnvironmentAware {
|
|
private ResourceLoader resourceLoader;
|
|
private Environment environment;
|
|
|
|
@Override
|
|
public void setResourceLoader(ResourceLoader resourceLoader) {
|
|
this.resourceLoader = resourceLoader;
|
|
}
|
|
|
|
@Override
|
|
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
|
|
Boolean enable = Optional.ofNullable(environment.getProperty(ENABLE_PREFIX)).map(Boolean::parseBoolean).orElse(Boolean.TRUE);
|
|
if (!enable) {
|
|
LogUtils.info("===> Easy-Es is not enabled");
|
|
return;
|
|
}
|
|
|
|
AnnotationAttributes mapperScanAttrs = AnnotationAttributes
|
|
.fromMap(importingClassMetadata.getAnnotationAttributes(EsMapperScan.class.getName()));
|
|
if (mapperScanAttrs != null) {
|
|
registerBeanDefinitions(mapperScanAttrs, registry);
|
|
}
|
|
}
|
|
|
|
void registerBeanDefinitions(AnnotationAttributes annoAttrs, BeanDefinitionRegistry registry) {
|
|
ClassPathMapperScanner scanner = new ClassPathMapperScanner(registry);
|
|
// this check is needed in Spring 3.1
|
|
Optional.ofNullable(resourceLoader).ifPresent(scanner::setResourceLoader);
|
|
List<String> basePackages = new ArrayList<>();
|
|
basePackages.addAll(
|
|
Arrays.stream(annoAttrs.getStringArray("value"))
|
|
.filter(StringUtils::hasText)
|
|
.collect(Collectors.toList()));
|
|
|
|
scanner.registerFilters();
|
|
scanner.doScan(StringUtils.toStringArray(basePackages));
|
|
}
|
|
|
|
@Override
|
|
public void setEnvironment(Environment environment) {
|
|
this.environment = environment;
|
|
}
|
|
}
|