diff --git a/README.md b/README.md
index ef6f345..20d3bb0 100644
--- a/README.md
+++ b/README.md
@@ -5,9 +5,9 @@ github:https://github.com/yexuejc/yexuejc-base
gitee:https://gitee.com/jzsw-it/yexuejc-base
### 说明
->1. 支持环境:java8
->2. 该工具包基于springboot提取,按理说适用于所有java工程
->3. 其中依赖jjwt、validation-api,排除请使用
+1. 支持环境:java8(1.5.0开始支持java11,请使用`x.x.x-jre11`版本)
+2. 该工具包基于springboot提取,按理说适用于所有java工程
+3. 其中依赖jjwt相关、validation-api,排除请使用
> ```
>
>
@@ -17,13 +17,13 @@ gitee:https://gitee.com/jzsw-it/yexuejc-base
>
> ```
>
->4. `1.1.9` 升级JWT为单例类
->5. `1.2.3` 修复RSA加密(签名)Base64Url 问题,如需使用RSA请使用1.2.3+
->##### 6. 从`1.3.0`开始,变更组织`groupId`为`top.yexuejc`。使用者请尽快升级到`1.3.0`以上(1.3.0代码向下兼容)
-
+4. `1.1.9` 升级JWT为单例类
+5. `1.2.3` 修复RSA加密(签名)Base64Url 问题,如需使用RSA请使用1.2.3+
+6. 从`1.3.0`开始,变更组织`groupId`为`top.yexuejc`。使用者请尽快升级到`1.3.0`以上(1.3.0代码向下兼容)
+7. 从`1.5.0`开始,版本分为`1.5.0-jre8`和`1.5.0-jre11`,分别对于jre8和jre11使用
### 使用
->yexuejc.base.version=1.4.5
+>yexuejc.base.version=1.5.0-jre8
pom.xml
```
diff --git a/UPDATE.md b/UPDATE.md
index 6dc57ba..9a818eb 100644
--- a/UPDATE.md
+++ b/UPDATE.md
@@ -1,6 +1,37 @@
yexuejc-base 更新记录
------------------
+#### version :1.5.0-jre8
+**time:2022-5-9 13:37:31**
+**branch:** master
+**update:**
+1. 升级jwt相关包,去除`io.jsonwebtoken:jjwt:0.9.1`(不再维护升级),
+取而代之的是引入以下包,升级相关依赖
+```
+io.jsonwebtoken:jjwt-api:0.11.5
+io.jsonwebtoken:jjwt-impl:0.11.5
+io.jsonwebtoken:jjwt-jackson:0.11.5
+org.bouncycastle:bcprov-jdk15on:1.70
+```
+2. 升级
+```
+jakarta.validation:jakarta.validation-api:3.0.1
+org.apache.poi:poi:5.2.2
+com.google.guava:guava:31.1-jre
+commons-io:commons-io:2.11.0
+```
+4. 去除依赖
+```
+1.15
+
+
+ commons-codec
+ commons-codec
+ ${commons-codec.version}
+ compile
+
+ ```
+#
#### version :1.4.5
**time:2022-5-9 13:37:31**
**branch:** master
diff --git a/pom.xml b/pom.xml
index 98b303e..25edbac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
top.yexuejc
yexuejc-base
- 1.4.5
+ 1.5.0-jre8
${project.artifactId}
https://github.com/yexuejc/yexuejc-base
@@ -40,18 +40,17 @@
https://nexus.yexuejc.top/repository/
- https://nexus.hm3981.com/repository/
http://maven.aliyun.com/nexus/content/groups/public
https://jitpack.io
- 0.9.1
+ 0.11.5
true
1.8
- 3.0.0
- 1.15
- 2.8.0
- 1.68
- 30.1-jre
- 5.0.0
+ 3.0.1
+
+ 2.11.0
+ 1.70
+ 31.1-jre
+ 5.2.2
UTF-8
UTF-8
@@ -63,28 +62,26 @@
io.jsonwebtoken
- jjwt
+ jjwt-api
+ ${jjwt.version}
+
+
+ io.jsonwebtoken
+ jjwt-impl
+ ${jjwt.version}
+
+
+ io.jsonwebtoken
+ jjwt-jackson
${jjwt.version}
-
-
-
-
-
-
jakarta.validation
jakarta.validation-api
${validation-api.version}
-
-
- commons-codec
- commons-codec
- ${commons-codec.version}
- compile
-
+
commons-io
@@ -114,10 +111,15 @@
poi-ooxml
${apache-poi.version}
+
+ org.junit.jupiter
+ junit-jupiter-api
+ 5.8.1
+ test
+
-
${project.artifactId}
diff --git a/src/main/java/com/yexuejc/base/util/JsonUtil.java b/src/main/java/com/yexuejc/base/util/JsonUtil.java
index 2225370..faa5fe8 100644
--- a/src/main/java/com/yexuejc/base/util/JsonUtil.java
+++ b/src/main/java/com/yexuejc/base/util/JsonUtil.java
@@ -1,9 +1,11 @@
package com.yexuejc.base.util;
-import com.fasterxml.jackson.annotation.JsonInclude.Include;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.type.MapType;
@@ -42,7 +44,7 @@ public class JsonUtil {
* @param objectMapper
*/
private static void initDefaultObjectMapper(ObjectMapper objectMapper) {
- objectMapper.setSerializationInclusion(Include.NON_NULL);
+ objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@@ -55,16 +57,17 @@ public class JsonUtil {
//TODO 待优化
public static void initSnakeCase() {
//驼峰下划线互转
- objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
+ objectMapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
}
/**
* 这个设置不能改变JsonUtil自带的objectMapper设置,只能修改传入objMapper的设置
+ *
* @param objMapper
*/
public static void initSnakeCase(ObjectMapper objMapper) {
//驼峰下划线互转
- objMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
+ objMapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
}
/**
@@ -144,8 +147,7 @@ public class JsonUtil {
*/
public static T json2Obj(String json, Class parametrized, Class>... parameterClasses) {
T pojo = null;
- JavaType javaType = objectMapper.getTypeFactory().constructParametrizedType(parametrized, parametrized,
- parameterClasses);
+ JavaType javaType = objectMapper.getTypeFactory().constructParametricType(parametrized, parameterClasses);
try {
pojo = objectMapper.readValue(json, javaType);
} catch (JsonParseException e) {
@@ -186,26 +188,18 @@ public class JsonUtil {
/**
* Json字符串转换为Java-Map对象
*
- * @param json 字符串
- * @param mapClass Map 继承类
- * @param keyType Key 类
- * @param valueType Value 类
+ * @param json 字符串
+ * @param javaType 具体的java类型
* @param
* @return
*/
- public static T json2Obj(String json, Class extends Map> mapClass, JavaType keyType, JavaType valueType) {
- T pojo = null;
- MapType mapType = objectMapper.getTypeFactory().constructMapType(mapClass, keyType, valueType);
+ public static T json2Obj(String json, TypeReference javaType) {
try {
- pojo = objectMapper.readValue(json, mapType);
- } catch (JsonParseException e) {
+ return objectMapper.readValue(json, javaType);
+ } catch (JsonProcessingException e) {
log.warning("json to Object JsonParseException.\n" + e.getMessage());
- } catch (JsonMappingException e) {
- log.warning("json to Object JsonMappingException.\n" + e.getMessage());
- } catch (IOException e) {
- log.warning("json to Object IOException.\n" + e.getMessage());
}
- return pojo;
+ return null;
}
/**
diff --git a/src/test/java/com/yexuejc/base/util/JsonUtilTest.java b/src/test/java/com/yexuejc/base/util/JsonUtilTest.java
index d7f5c98..f225074 100644
--- a/src/test/java/com/yexuejc/base/util/JsonUtilTest.java
+++ b/src/test/java/com/yexuejc/base/util/JsonUtilTest.java
@@ -1,5 +1,7 @@
package com.yexuejc.base.util;
+import com.fasterxml.jackson.core.type.TypeReference;
+import org.junit.jupiter.api.Test;
import java.io.Serializable;
import java.util.ArrayList;
@@ -7,7 +9,27 @@ import java.util.List;
import java.util.Map;
public class JsonUtilTest {
- public static void main(String[] args) {
+ @Test
+ public void test2() {
+// TestA testA = new TestA("张三", 1, false);
+// List list = new ArrayList<>();
+// list.add(testA);
+// list.add(testA);
+// Map> data = new HashMap<>();
+// data.put("data",list);
+// System.out.println(JsonUtil.obj2Json(data));
+// System.out.println("===========================");
+ String readData="{\"data\":[{\"name\":\"张三\",\"id\":1,\"sex\":false},{\"name\":\"张三\",\"id\":1,\"sex\":false}]}";
+ Map> map = JsonUtil.json2Obj(readData, new TypeReference