xpc1024 39b362aef3 v0.9.30
新增功能:
前序迭代已支持了一部分父子类型的查询功能,此版本对父子类型功能闭环,至此,父子类型功能已完整支持,新增功能包括:
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次的缺陷.
2022-06-01 16:56:17 +08:00

60 lines
1.5 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package cn.easyes.common.utils;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
/**
* 类工具类
* <p>
* Copyright © 2021 xpc1024 All Rights Reserved
**/
public final class ClassUtils {
/**
* 代理 class 的名称
*/
private static final List<String> PROXY_CLASS_NAMES = Arrays.asList("net.sf.cglib.proxy.Factory"
// cglib
, "org.springframework.cglib.proxy.Factory"
, "javassist.util.proxy.ProxyObject"
// javassist
, "org.apache.ibatis.javassist.util.proxy.ProxyObject");
private ClassUtils() {
}
/**
* 判断是否为代理对象
*
* @param clazz 传入 class 对象
* @return 如果对象class是代理 class返回 true
*/
public static boolean isProxy(Class<?> clazz) {
if (clazz != null) {
for (Class<?> cls : clazz.getInterfaces()) {
if (PROXY_CLASS_NAMES.contains(cls.getName())) {
return true;
}
}
}
return false;
}
/**
* <p>
* 获取当前对象的 class
* </p>
*
* @param clazz 传入
* @return 如果是代理的class返回父 class否则返回自身
*/
public static Class<?> getUserClass(Class<?> clazz) {
if (Objects.isNull(clazz)) {
throw ExceptionUtils.eee("Class must not be null");
}
return isProxy(clazz) ? clazz.getSuperclass() : clazz;
}
}