mirror of
https://gitee.com/dromara/easy-es.git
synced 2025-12-07 09:39:04 +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次的缺陷.
60 lines
1.5 KiB
Java
60 lines
1.5 KiB
Java
|
||
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;
|
||
}
|
||
}
|