ResourceFactory支持BigDecimal
This commit is contained in:
@@ -1758,7 +1758,7 @@ public final class Application {
|
|||||||
throw new IllegalArgumentException("serviceClass is null");
|
throw new IllegalArgumentException("serviceClass is null");
|
||||||
}
|
}
|
||||||
final Application application = Application.create(true);
|
final Application application = Application.create(true);
|
||||||
System.setProperty("red" + "kale.singleton.serviceclass", serviceClass.getName());
|
System.setProperty("redkale.singleton.serviceclass", serviceClass.getName());
|
||||||
if (extServiceClasses != null && extServiceClasses.length > 0) {
|
if (extServiceClasses != null && extServiceClasses.length > 0) {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (Class clazz : extServiceClasses) {
|
for (Class clazz : extServiceClasses) {
|
||||||
@@ -1767,7 +1767,7 @@ public final class Application {
|
|||||||
}
|
}
|
||||||
sb.append(clazz.getName());
|
sb.append(clazz.getName());
|
||||||
}
|
}
|
||||||
System.setProperty("red" + "kale.singleton.extserviceclasses", sb.toString());
|
System.setProperty("redkale.singleton.extserviceclasses", sb.toString());
|
||||||
}
|
}
|
||||||
application.init();
|
application.init();
|
||||||
application.start();
|
application.start();
|
||||||
|
|||||||
@@ -176,8 +176,8 @@ public abstract class NodeServer {
|
|||||||
|
|
||||||
ClassFilter<Service> serviceFilter = createServiceClassFilter();
|
ClassFilter<Service> serviceFilter = createServiceClassFilter();
|
||||||
if (application.isSingletonMode()) { //singleton模式下只加载指定的Service
|
if (application.isSingletonMode()) { //singleton模式下只加载指定的Service
|
||||||
final String ssc = System.getProperty("red" + "kale.singleton.serviceclass");
|
final String ssc = System.getProperty("redkale.singleton.serviceclass");
|
||||||
final String extssc = System.getProperty("red" + "kale.singleton.extserviceclasses");
|
final String extssc = System.getProperty("redkale.singleton.extserviceclasses");
|
||||||
if (ssc != null) {
|
if (ssc != null) {
|
||||||
final List<String> sscList = new ArrayList<>();
|
final List<String> sscList = new ArrayList<>();
|
||||||
sscList.add(ssc);
|
sscList.add(ssc);
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class OneOrList<T> implements java.io.Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//序列化
|
//序列化
|
||||||
protected static Encodeable<JsonWriter, OneOrList> createEncoder(final org.redkale.convert.json.JsonFactory factory, final Type type) {
|
protected static Encodeable<JsonWriter, OneOrList> createEncoder(final JsonFactory factory, final Type type) {
|
||||||
Type itemType = parseItemType(type);
|
Type itemType = parseItemType(type);
|
||||||
if (itemType == null) {
|
if (itemType == null) {
|
||||||
return null;
|
return null;
|
||||||
@@ -79,7 +79,7 @@ public class OneOrList<T> implements java.io.Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//反序列化
|
//反序列化
|
||||||
protected static Decodeable<JsonReader, OneOrList> createDecoder(final org.redkale.convert.json.JsonFactory factory, final Type type) {
|
protected static Decodeable<JsonReader, OneOrList> createDecoder(final JsonFactory factory, final Type type) {
|
||||||
Type itemType = parseItemType(type);
|
Type itemType = parseItemType(type);
|
||||||
if (itemType == null) {
|
if (itemType == null) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -846,7 +846,8 @@ public final class ResourceFactory {
|
|||||||
if (classType.isPrimitive() || classType == Integer.class
|
if (classType.isPrimitive() || classType == Integer.class
|
||||||
|| classType == Long.class || classType == Short.class
|
|| classType == Long.class || classType == Short.class
|
||||||
|| classType == Boolean.class || classType == Byte.class
|
|| classType == Boolean.class || classType == Byte.class
|
||||||
|| classType == Float.class || classType == Double.class || classType == BigInteger.class) {
|
|| classType == Float.class || classType == Double.class
|
||||||
|
|| classType == BigInteger.class || classType == BigDecimal.class) {
|
||||||
re = findEntry(rcname, String.class);
|
re = findEntry(rcname, String.class);
|
||||||
if (re == null && rcname.startsWith("property.")) { //兼容2.8.0之前版本自动追加property.开头的配置项
|
if (re == null && rcname.startsWith("property.")) { //兼容2.8.0之前版本自动追加property.开头的配置项
|
||||||
re = findEntry(rcname.substring("property.".length()), String.class);
|
re = findEntry(rcname.substring("property.".length()), String.class);
|
||||||
@@ -874,7 +875,7 @@ public final class ResourceFactory {
|
|||||||
|| classType == Long.class || classType == Short.class
|
|| classType == Long.class || classType == Short.class
|
||||||
|| classType == Boolean.class || classType == Byte.class
|
|| classType == Boolean.class || classType == Byte.class
|
||||||
|| classType == Float.class || classType == Double.class
|
|| classType == Float.class || classType == Double.class
|
||||||
|| classType == BigInteger.class) {
|
|| classType == BigInteger.class || classType == BigDecimal.class) {
|
||||||
re = findEntry(rcname, String.class);
|
re = findEntry(rcname, String.class);
|
||||||
} else {
|
} else {
|
||||||
re = findEntry(rcname, classType);
|
re = findEntry(rcname, classType);
|
||||||
@@ -901,10 +902,11 @@ public final class ResourceFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (rs != null && !rs.getClass().isPrimitive() && (classType.isPrimitive()
|
if (rs != null && !rs.getClass().isPrimitive() && (classType.isPrimitive()
|
||||||
|| classType == Integer.class || classType == Long.class
|
|| classType == Integer.class
|
||||||
|| classType == Short.class || classType == Boolean.class
|
|| classType == Long.class || classType == Short.class
|
||||||
|| classType == Byte.class || classType == Float.class
|
|| classType == Boolean.class || classType == Byte.class
|
||||||
|| classType == Double.class || classType == BigInteger.class)) {
|
|| classType == Float.class || classType == Double.class
|
||||||
|
|| classType == BigInteger.class || classType == BigDecimal.class)) {
|
||||||
if (classType == int.class || classType == Integer.class) {
|
if (classType == int.class || classType == Integer.class) {
|
||||||
rs = Integer.decode(rs.toString());
|
rs = Integer.decode(rs.toString());
|
||||||
} else if (classType == long.class || classType == Long.class) {
|
} else if (classType == long.class || classType == Long.class) {
|
||||||
@@ -921,6 +923,8 @@ public final class ResourceFactory {
|
|||||||
rs = Double.parseDouble(rs.toString());
|
rs = Double.parseDouble(rs.toString());
|
||||||
} else if (classType == BigInteger.class) {
|
} else if (classType == BigInteger.class) {
|
||||||
rs = new BigInteger(rs.toString());
|
rs = new BigInteger(rs.toString());
|
||||||
|
} else if (classType == BigDecimal.class) {
|
||||||
|
rs = new BigDecimal(rs.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (rs != null) {
|
if (rs != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user