Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Pig
提交
0aa9147a
P
Pig
项目概览
int
/
Pig
上一次同步 大约 1 年
通知
8
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Pig
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0aa9147a
编写于
3月 21, 2019
作者:
L
lishangbu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
♻
Refactoring code.optimize jackson java8 datetime module
上级
fc7e7cb9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
66 addition
and
35 deletion
+66
-35
pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/config/JacksonConfig.java
...a/com/pig4cloud/pig/common/core/config/JacksonConfig.java
+15
-35
pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/jackson/PigJavaTimeModule.java
.../pig4cloud/pig/common/core/jackson/PigJavaTimeModule.java
+51
-0
未找到文件。
pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/config/JacksonConfig.java
浏览文件 @
0aa9147a
...
...
@@ -16,59 +16,39 @@
package
com.pig4cloud.pig.common.core.config
;
import
c
om.fasterxml.jackson.databind.DeserializationFeature
;
import
c
n.hutool.core.date.DatePattern
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.SerializationFeature
;
import
com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer
;
import
com.pig4cloud.pig.common.core.jackson.PigJavaTimeModule
;
import
org.springframework.boot.autoconfigure.AutoConfigureBefore
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer
;
import
org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
import
java.time.format.DateTimeFormatter
;
import
java.time.ZoneId
;
import
java.util.Locale
;
import
java.util.TimeZone
;
/**
* JacksonConfig
*
* @author: lengleng
* @author L.cm
* @author: lishangbu
* @date: 201
9/2/1
* @date: 201
8/10/22
*/
@Configuration
@ConditionalOnClass
(
ObjectMapper
.
class
)
@AutoConfigureBefore
(
JacksonAutoConfiguration
.
class
)
public
class
JacksonConfig
{
/**
* 针对JDK 1.8的日期时间格式特殊处理
*
* @return ObjectMapper
*/
@Bean
public
ObjectMapper
getObjectMapper
()
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
JavaTimeModule
javaTimeModule
=
new
JavaTimeModule
();
javaTimeModule
.
addSerializer
(
LocalDateTime
.
class
,
new
LocalDateTimeSerializer
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
javaTimeModule
.
addSerializer
(
LocalDate
.
class
,
new
LocalDateSerializer
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
)));
javaTimeModule
.
addSerializer
(
LocalTime
.
class
,
new
LocalTimeSerializer
(
DateTimeFormatter
.
ofPattern
(
"HH:mm:ss"
)));
javaTimeModule
.
addDeserializer
(
LocalDateTime
.
class
,
new
LocalDateTimeDeserializer
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
javaTimeModule
.
addDeserializer
(
LocalDate
.
class
,
new
LocalDateDeserializer
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
)));
javaTimeModule
.
addDeserializer
(
LocalTime
.
class
,
new
LocalTimeDeserializer
(
DateTimeFormatter
.
ofPattern
(
"HH:mm:ss"
)));
// javaTimeModule只能手动注册,参考https://github.com/FasterXML/jackson-modules-java8
objectMapper
.
registerModule
(
javaTimeModule
);
// 忽略json字符串中不识别的属性
objectMapper
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
// 忽略无法转换的对象
objectMapper
.
configure
(
SerializationFeature
.
FAIL_ON_EMPTY_BEANS
,
false
);
return
objectMapper
;
public
Jackson2ObjectMapperBuilderCustomizer
customizer
()
{
return
builder
->
{
builder
.
locale
(
Locale
.
CHINA
);
builder
.
timeZone
(
TimeZone
.
getTimeZone
(
ZoneId
.
systemDefault
()));
builder
.
simpleDateFormat
(
DatePattern
.
NORM_DATETIME_PATTERN
);
builder
.
modules
(
new
PigJavaTimeModule
());
};
}
}
pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/jackson/PigJavaTimeModule.java
0 → 100644
浏览文件 @
0aa9147a
/*
* Copyright (c) 2019-2020, 冷冷 (wangiegie@gmail.com).
* <p>
* Licensed under the GNU Lesser General Public License 3.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* https://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.pig4cloud.pig.common.core.jackson
;
import
cn.hutool.core.date.DatePattern
;
import
com.fasterxml.jackson.databind.module.SimpleModule
;
import
com.fasterxml.jackson.datatype.jsr310.PackageVersion
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
import
java.time.format.DateTimeFormatter
;
/**
* java 8 时间默认序列化
*
* @author L.cm
* @author lishanbu
*/
public
class
PigJavaTimeModule
extends
SimpleModule
{
public
PigJavaTimeModule
()
{
super
(
PackageVersion
.
VERSION
);
this
.
addSerializer
(
LocalDateTime
.
class
,
new
LocalDateTimeSerializer
(
DateTimeFormatter
.
ofPattern
(
DatePattern
.
NORM_DATETIME_PATTERN
)));
this
.
addSerializer
(
LocalDate
.
class
,
new
LocalDateSerializer
(
DateTimeFormatter
.
ofPattern
(
DatePattern
.
NORM_DATE_PATTERN
)));
this
.
addSerializer
(
LocalTime
.
class
,
new
LocalTimeSerializer
(
DateTimeFormatter
.
ofPattern
(
DatePattern
.
NORM_TIME_PATTERN
)));
this
.
addDeserializer
(
LocalDateTime
.
class
,
new
LocalDateTimeDeserializer
(
DateTimeFormatter
.
ofPattern
(
DatePattern
.
NORM_DATETIME_PATTERN
)));
this
.
addDeserializer
(
LocalDate
.
class
,
new
LocalDateDeserializer
(
DateTimeFormatter
.
ofPattern
(
DatePattern
.
NORM_DATE_PATTERN
)));
this
.
addDeserializer
(
LocalTime
.
class
,
new
LocalTimeDeserializer
(
DateTimeFormatter
.
ofPattern
(
DatePattern
.
NORM_TIME_PATTERN
)));
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录