mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
添加spi加载自定义转换方法
This commit is contained in:
parent
80239e2f27
commit
1f57bff2c0
@ -32,8 +32,10 @@ import cn.hutool.core.convert.impl.URLConverter;
|
|||||||
import cn.hutool.core.convert.impl.UUIDConverter;
|
import cn.hutool.core.convert.impl.UUIDConverter;
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.lang.TypeReference;
|
import cn.hutool.core.lang.TypeReference;
|
||||||
|
import cn.hutool.core.util.ClassUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
|
import cn.hutool.core.util.ServiceLoaderUtil;
|
||||||
import cn.hutool.core.util.TypeUtil;
|
import cn.hutool.core.util.TypeUtil;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -59,9 +61,11 @@ import java.time.temporal.TemporalAccessor;
|
|||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Currency;
|
import java.util.Currency;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.ServiceLoader;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
@ -107,6 +111,22 @@ public class ConverterRegistry implements Serializable{
|
|||||||
|
|
||||||
public ConverterRegistry() {
|
public ConverterRegistry() {
|
||||||
defaultConverter();
|
defaultConverter();
|
||||||
|
putCustomBySpi();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("rawtypes")
|
||||||
|
private void putCustomBySpi() {
|
||||||
|
List<Converter> list = ServiceLoaderUtil.loadList(Converter.class);
|
||||||
|
list.forEach(converter->{
|
||||||
|
try {
|
||||||
|
Type type = TypeUtil.getTypeArgument(ClassUtil.getClass(converter));
|
||||||
|
putCustom(type, converter);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 忽略注册失败的
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user