mirror of
https://gitee.com/jzsw-it/yexuejc-base.git
synced 2025-06-07 22:34:04 +08:00
1.5.0-jre8
This commit is contained in:
parent
6ff859b4fb
commit
933eacc1c2
16
README.md
16
README.md
@ -5,9 +5,9 @@ github:https://github.com/yexuejc/yexuejc-base
|
|||||||
gitee:https://gitee.com/jzsw-it/yexuejc-base
|
gitee:https://gitee.com/jzsw-it/yexuejc-base
|
||||||
|
|
||||||
### 说明
|
### 说明
|
||||||
>1. 支持环境:java8
|
1. 支持环境:java8(1.5.0开始支持java11,请使用`x.x.x-jre11`版本)
|
||||||
>2. 该工具包基于springboot提取,按理说适用于所有java工程
|
2. 该工具包基于springboot提取,按理说适用于所有java工程
|
||||||
>3. 其中依赖jjwt、validation-api,排除请使用
|
3. 其中依赖jjwt相关、validation-api,排除请使用
|
||||||
> ```
|
> ```
|
||||||
> <exclusions>
|
> <exclusions>
|
||||||
> <exclusion>
|
> <exclusion>
|
||||||
@ -17,13 +17,13 @@ gitee:https://gitee.com/jzsw-it/yexuejc-base
|
|||||||
> </exclusions>
|
> </exclusions>
|
||||||
> ```
|
> ```
|
||||||
>
|
>
|
||||||
>4. `1.1.9` 升级JWT为单例类
|
4. `1.1.9` 升级JWT为单例类
|
||||||
>5. `1.2.3` 修复RSA加密(签名)Base64Url 问题,如需使用RSA请使用1.2.3+
|
5. `1.2.3` 修复RSA加密(签名)Base64Url 问题,如需使用RSA请使用1.2.3+
|
||||||
>##### 6. 从`1.3.0`开始,变更组织`groupId`为`top.yexuejc`。使用者请尽快升级到`1.3.0`以上(1.3.0代码向下兼容)
|
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
|
pom.xml
|
||||||
```
|
```
|
||||||
|
31
UPDATE.md
31
UPDATE.md
@ -1,6 +1,37 @@
|
|||||||
yexuejc-base 更新记录
|
yexuejc-base 更新记录
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
#### version :1.5.0-jre8
|
||||||
|
**time:2022-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
|
#### version :1.4.5
|
||||||
**time:2022-5-9 13:37:31** <br/>
|
**time:2022-5-9 13:37:31** <br/>
|
||||||
**branch:** master <br/>
|
**branch:** master <br/>
|
||||||
|
50
pom.xml
50
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>top.yexuejc</groupId>
|
<groupId>top.yexuejc</groupId>
|
||||||
<artifactId>yexuejc-base</artifactId>
|
<artifactId>yexuejc-base</artifactId>
|
||||||
<version>1.4.5</version>
|
<version>1.5.0-jre8</version>
|
||||||
|
|
||||||
<name>${project.artifactId}</name>
|
<name>${project.artifactId}</name>
|
||||||
<url>https://github.com/yexuejc/yexuejc-base</url>
|
<url>https://github.com/yexuejc/yexuejc-base</url>
|
||||||
@ -40,18 +40,17 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<repos.yexuejc.url>https://nexus.yexuejc.top/repository/</repos.yexuejc.url>
|
<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.aliyun.url>http://maven.aliyun.com/nexus/content/groups/public</repos.aliyun.url>
|
||||||
<repos.jitpack.url>https://jitpack.io</repos.jitpack.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>
|
<maven.compiler.verbose>true</maven.compiler.verbose>
|
||||||
<java.version>1.8</java.version>
|
<java.version>1.8</java.version>
|
||||||
<validation-api.version>3.0.0</validation-api.version>
|
<validation-api.version>3.0.1</validation-api.version>
|
||||||
<commons-codec.version>1.15</commons-codec.version>
|
|
||||||
<commons-io.version>2.8.0</commons-io.version>
|
<commons-io.version>2.11.0</commons-io.version>
|
||||||
<bcprov-jdk15on.version>1.68</bcprov-jdk15on.version>
|
<bcprov-jdk15on.version>1.70</bcprov-jdk15on.version>
|
||||||
<guava.version>30.1-jre</guava.version>
|
<guava.version>31.1-jre</guava.version>
|
||||||
<apache-poi.version>5.0.0</apache-poi.version>
|
<apache-poi.version>5.2.2</apache-poi.version>
|
||||||
<!-- 文件拷贝时的编码 -->
|
<!-- 文件拷贝时的编码 -->
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
@ -63,28 +62,26 @@
|
|||||||
<!-- JJWT -->
|
<!-- JJWT -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.jsonwebtoken</groupId>
|
<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>
|
<version>${jjwt.version}</version>
|
||||||
</dependency>
|
</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>
|
<dependency>
|
||||||
<groupId>jakarta.validation</groupId>
|
<groupId>jakarta.validation</groupId>
|
||||||
<artifactId>jakarta.validation-api</artifactId>
|
<artifactId>jakarta.validation-api</artifactId>
|
||||||
<version>${validation-api.version}</version>
|
<version>${validation-api.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!--base64使用到的依赖-->
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-codec</groupId>
|
|
||||||
<artifactId>commons-codec</artifactId>
|
|
||||||
<version>${commons-codec.version}</version>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
<!--IOUtils使用到的依赖-->
|
<!--IOUtils使用到的依赖-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>commons-io</groupId>
|
<groupId>commons-io</groupId>
|
||||||
@ -114,10 +111,15 @@
|
|||||||
<artifactId>poi-ooxml</artifactId>
|
<artifactId>poi-ooxml</artifactId>
|
||||||
<version>${apache-poi.version}</version>
|
<version>${apache-poi.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter-api</artifactId>
|
||||||
|
<version>5.8.1</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<finalName>${project.artifactId}</finalName>
|
<finalName>${project.artifactId}</finalName>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
package com.yexuejc.base.util;
|
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.JsonParseException;
|
||||||
import com.fasterxml.jackson.core.JsonParser;
|
import com.fasterxml.jackson.core.JsonParser;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.*;
|
import com.fasterxml.jackson.databind.*;
|
||||||
import com.fasterxml.jackson.databind.type.MapType;
|
import com.fasterxml.jackson.databind.type.MapType;
|
||||||
|
|
||||||
@ -42,7 +44,7 @@ public class JsonUtil {
|
|||||||
* @param objectMapper
|
* @param objectMapper
|
||||||
*/
|
*/
|
||||||
private static void initDefaultObjectMapper(ObjectMapper 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_SINGLE_QUOTES, true);
|
||||||
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
|
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
|
||||||
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||||
@ -55,16 +57,17 @@ public class JsonUtil {
|
|||||||
//TODO 待优化
|
//TODO 待优化
|
||||||
public static void initSnakeCase() {
|
public static void initSnakeCase() {
|
||||||
//驼峰下划线互转
|
//驼峰下划线互转
|
||||||
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
|
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 这个设置不能改变JsonUtil自带的objectMapper设置,只能修改传入objMapper的设置
|
* 这个设置不能改变JsonUtil自带的objectMapper设置,只能修改传入objMapper的设置
|
||||||
|
*
|
||||||
* @param objMapper
|
* @param objMapper
|
||||||
*/
|
*/
|
||||||
public static void initSnakeCase(ObjectMapper 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) {
|
public static <T> T json2Obj(String json, Class<T> parametrized, Class<?>... parameterClasses) {
|
||||||
T pojo = null;
|
T pojo = null;
|
||||||
JavaType javaType = objectMapper.getTypeFactory().constructParametrizedType(parametrized, parametrized,
|
JavaType javaType = objectMapper.getTypeFactory().constructParametricType(parametrized, parameterClasses);
|
||||||
parameterClasses);
|
|
||||||
try {
|
try {
|
||||||
pojo = objectMapper.readValue(json, javaType);
|
pojo = objectMapper.readValue(json, javaType);
|
||||||
} catch (JsonParseException e) {
|
} catch (JsonParseException e) {
|
||||||
@ -186,26 +188,18 @@ public class JsonUtil {
|
|||||||
/**
|
/**
|
||||||
* Json字符串转换为Java-Map对象
|
* Json字符串转换为Java-Map对象
|
||||||
*
|
*
|
||||||
* @param json 字符串
|
* @param json 字符串
|
||||||
* @param mapClass Map 继承类
|
* @param javaType 具体的java类型
|
||||||
* @param keyType Key 类
|
|
||||||
* @param valueType Value 类
|
|
||||||
* @param <T>
|
* @param <T>
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static <T> T json2Obj(String json, Class<? extends Map> mapClass, JavaType keyType, JavaType valueType) {
|
public static <T extends Object> T json2Obj(String json, TypeReference<T> javaType) {
|
||||||
T pojo = null;
|
|
||||||
MapType mapType = objectMapper.getTypeFactory().constructMapType(mapClass, keyType, valueType);
|
|
||||||
try {
|
try {
|
||||||
pojo = objectMapper.readValue(json, mapType);
|
return objectMapper.readValue(json, javaType);
|
||||||
} catch (JsonParseException e) {
|
} catch (JsonProcessingException e) {
|
||||||
log.warning("json to Object JsonParseException.\n" + e.getMessage());
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.yexuejc.base.util;
|
package com.yexuejc.base.util;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -7,7 +9,27 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class JsonUtilTest {
|
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);
|
TestA testA = new TestA("张三", 1, false);
|
||||||
System.out.println(JsonUtil.json2Obj(JsonUtil.obj2Json(testA), Map.class));
|
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);
|
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 {
|
static class TestA implements Serializable {
|
||||||
@ -32,5 +54,4 @@ public class JsonUtilTest {
|
|||||||
this.sex = sex;
|
this.sex = sex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user