1.5.0-jre8

This commit is contained in:
yexuejc-vm-win10 2022-05-09 17:11:14 +08:00
parent 6ff859b4fb
commit 933eacc1c2
5 changed files with 103 additions and 55 deletions

View File

@ -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. 支持环境java81.5.0开始支持java11请使用`x.x.x-jre11`版本)
2. 该工具包基于springboot提取按理说适用于所有java工程
3. 其中依赖jjwt相关、validation-api排除请使用
> ```
> <exclusions>
> <exclusion>
@ -17,13 +17,13 @@ gitee:https://gitee.com/jzsw-it/yexuejc-base
> </exclusions>
> ```
>
>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
```

View File

@ -1,6 +1,37 @@
yexuejc-base 更新记录
------------------
#### version 1.5.0-jre8
**time2022-5-9 13:37:31** <br/>
**branch** master <br/>
**update** <br/>
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. 去除依赖
```
<commons-codec.version>1.15</commons-codec.version>
<!--base64使用到的依赖-->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons-codec.version}</version>
<scope>compile</scope>
</dependency>
```
#
#### version 1.4.5
**time2022-5-9 13:37:31** <br/>
**branch** master <br/>

50
pom.xml
View File

@ -6,7 +6,7 @@
<groupId>top.yexuejc</groupId>
<artifactId>yexuejc-base</artifactId>
<version>1.4.5</version>
<version>1.5.0-jre8</version>
<name>${project.artifactId}</name>
<url>https://github.com/yexuejc/yexuejc-base</url>
@ -40,18 +40,17 @@
<properties>
<repos.yexuejc.url>https://nexus.yexuejc.top/repository/</repos.yexuejc.url>
<repos.hm.url>https://nexus.hm3981.com/repository/</repos.hm.url>
<repos.aliyun.url>http://maven.aliyun.com/nexus/content/groups/public</repos.aliyun.url>
<repos.jitpack.url>https://jitpack.io</repos.jitpack.url>
<jjwt.version>0.9.1</jjwt.version>
<jjwt.version>0.11.5</jjwt.version>
<maven.compiler.verbose>true</maven.compiler.verbose>
<java.version>1.8</java.version>
<validation-api.version>3.0.0</validation-api.version>
<commons-codec.version>1.15</commons-codec.version>
<commons-io.version>2.8.0</commons-io.version>
<bcprov-jdk15on.version>1.68</bcprov-jdk15on.version>
<guava.version>30.1-jre</guava.version>
<apache-poi.version>5.0.0</apache-poi.version>
<validation-api.version>3.0.1</validation-api.version>
<commons-io.version>2.11.0</commons-io.version>
<bcprov-jdk15on.version>1.70</bcprov-jdk15on.version>
<guava.version>31.1-jre</guava.version>
<apache-poi.version>5.2.2</apache-poi.version>
<!-- 文件拷贝时的编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@ -63,28 +62,26 @@
<!-- JJWT -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<artifactId>jjwt-api</artifactId>
<version>${jjwt.version}</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>${jjwt.version}</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>${jjwt.version}</version>
</dependency>
<!-- 数据校验框架 -->
<!-- <dependency>-->
<!-- <groupId>javax.validation</groupId>-->
<!-- <artifactId>validation-api</artifactId>-->
<!-- <version>${validation-api.version}</version>-->
<!-- </dependency>-->
<!-- https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api -->
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>${validation-api.version}</version>
</dependency>
<!--base64使用到的依赖-->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons-codec.version}</version>
<scope>compile</scope>
</dependency>
<!--IOUtils使用到的依赖-->
<dependency>
<groupId>commons-io</groupId>
@ -114,10 +111,15 @@
<artifactId>poi-ooxml</artifactId>
<version>${apache-poi.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>

View File

@ -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> T json2Obj(String json, Class<T> 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) {
@ -187,25 +189,17 @@ public class JsonUtil {
* Json字符串转换为Java-Map对象
*
* @param json 字符串
* @param mapClass Map 继承类
* @param keyType Key
* @param valueType Value
* @param javaType 具体的java类型
* @param <T>
* @return
*/
public static <T> 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 extends Object> T json2Obj(String json, TypeReference<T> 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;
}
/**

View File

@ -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<TestA> list = new ArrayList<>();
// list.add(testA);
// list.add(testA);
// Map<String, List<TestA>> 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<String, List<TestA>> map = JsonUtil.json2Obj(readData, new TypeReference<Map<String, List<TestA>>>() {
});
System.out.println(JsonUtil.obj2Json(map));
List<TestA> 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;
}
}
}