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 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>>() { + }); + System.out.println(JsonUtil.obj2Json(map)); + List testAS = map.get("data"); + System.out.println(testAS.getClass().toString()); + System.out.println(testAS.get(0).getClass().toString()); + } + + @Test + public void test1() { TestA testA = new TestA("张三", 1, false); System.out.println(JsonUtil.json2Obj(JsonUtil.obj2Json(testA), Map.class)); @@ -15,7 +37,7 @@ public class JsonUtilTest { list.add(testA); list.add(testA); list.add(testA); - System.out.println(JsonUtil.json2Obj(JsonUtil.obj2Json(list), List.class,TestA.class)); + System.out.println(JsonUtil.json2Obj(JsonUtil.obj2Json(list), List.class, TestA.class)); } static class TestA implements Serializable { @@ -32,5 +54,4 @@ public class JsonUtilTest { this.sex = sex; } } - } \ No newline at end of file