From c6157359f31f6e5d5d25827100be19ffe3c6902f Mon Sep 17 00:00:00 2001 From: aohanhongzhi Date: Mon, 7 Sep 2020 06:37:52 +0800 Subject: [PATCH 1/7] DTO --- README.md | 4 +++- .../hxy/dream/app/entity/param/UserParam.java | 3 +++ .../app/service/impl/UserServiceImpl.java | 4 ++++ .../common/configuration/BeanConfig.java | 3 +++ .../common/serializer/DTOSerializer.java | 22 +++++++++++++++++++ .../java/hxy/dream/dao/modle/UserModel.java | 2 ++ .../main/java/hxy/dream/entity/dto/DTO.java | 5 +++++ .../java/hxy/dream/entity/dto/UserDTO.java | 11 +++++++++- 8 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 common/src/main/java/hxy/dream/common/serializer/DTOSerializer.java create mode 100644 entity/src/main/java/hxy/dream/entity/dto/DTO.java diff --git a/README.md b/README.md index 042721e..c618ecd 100644 --- a/README.md +++ b/README.md @@ -90,4 +90,6 @@ https://juejin.im/post/6844904196693557255 #### 自定义date的序列化器 -https://blog.csdn.net/bandancer/article/details/84926383 \ No newline at end of file +https://blog.csdn.net/bandancer/article/details/84926383 + +[基于fastjson在mvc中解决enum类型序列化反序列化](https://zhuanlan.zhihu.com/p/121112597) diff --git a/app/src/main/java/hxy/dream/app/entity/param/UserParam.java b/app/src/main/java/hxy/dream/app/entity/param/UserParam.java index f5ce435..3042ab9 100644 --- a/app/src/main/java/hxy/dream/app/entity/param/UserParam.java +++ b/app/src/main/java/hxy/dream/app/entity/param/UserParam.java @@ -1,5 +1,6 @@ package hxy.dream.app.entity.param; +import hxy.dream.entity.dto.UserDTO; import hxy.dream.entity.enums.GenderEnum; import lombok.Data; @@ -17,4 +18,6 @@ public class UserParam { GenderEnum gender; @NotNull(message = "age不能为空") Integer age; + + UserDTO userDTO; } diff --git a/app/src/main/java/hxy/dream/app/service/impl/UserServiceImpl.java b/app/src/main/java/hxy/dream/app/service/impl/UserServiceImpl.java index 14c5712..3f72de3 100644 --- a/app/src/main/java/hxy/dream/app/service/impl/UserServiceImpl.java +++ b/app/src/main/java/hxy/dream/app/service/impl/UserServiceImpl.java @@ -4,6 +4,7 @@ import hxy.dream.app.entity.param.UserParam; import hxy.dream.app.service.UserService; import hxy.dream.dao.mapper.UserMapper; import hxy.dream.dao.modle.UserModel; +import hxy.dream.entity.dto.UserDTO; import hxy.dream.entity.enums.GenderEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -32,6 +33,9 @@ public class UserServiceImpl implements UserService { } int insert = userMapper.insert(userModel); log.debug("\n====>插入影响行数:{}", insert); + UserDTO userDTO = new UserDTO(); + userDTO.setId("111"); + userModel.setUserDTO(userDTO); return userModel; } diff --git a/common/src/main/java/hxy/dream/common/configuration/BeanConfig.java b/common/src/main/java/hxy/dream/common/configuration/BeanConfig.java index f3a7970..f6135d5 100644 --- a/common/src/main/java/hxy/dream/common/configuration/BeanConfig.java +++ b/common/src/main/java/hxy/dream/common/configuration/BeanConfig.java @@ -11,7 +11,9 @@ import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonSerializer; import hxy.dream.common.serializer.BaseEnumDeserializer; import hxy.dream.common.serializer.BaseEnumSerializer; +import hxy.dream.common.serializer.DTOSerializer; import hxy.dream.common.serializer.DateJsonSerializer; +import hxy.dream.entity.dto.DTO; import hxy.dream.entity.enums.BaseEnum; import hxy.dream.entity.enums.GenderEnum; import lombok.extern.slf4j.Slf4j; @@ -34,6 +36,7 @@ public class BeanConfig { Map, JsonSerializer> serializers = new LinkedHashMap<>(); serializers.put(BaseEnum.class, new BaseEnumSerializer()); serializers.put(Date.class, new DateJsonSerializer()); + serializers.put(DTO.class, new DTOSerializer()); jacksonObjectMapperBuilder.serializersByType(serializers); // 自定义反序列化器注入 diff --git a/common/src/main/java/hxy/dream/common/serializer/DTOSerializer.java b/common/src/main/java/hxy/dream/common/serializer/DTOSerializer.java new file mode 100644 index 0000000..9504675 --- /dev/null +++ b/common/src/main/java/hxy/dream/common/serializer/DTOSerializer.java @@ -0,0 +1,22 @@ +package hxy.dream.common.serializer; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import hxy.dream.entity.dto.DTO; +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; + +@Slf4j +public class DTOSerializer extends JsonSerializer { + + @Override + public void serialize(DTO value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + + log.info("\n====>当前是DTO序列化"); + gen.writeStartObject(); + gen.writeStringField("dto", value.dto()); + gen.writeEndObject(); + } +} diff --git a/dao/src/main/java/hxy/dream/dao/modle/UserModel.java b/dao/src/main/java/hxy/dream/dao/modle/UserModel.java index 2905f0a..e229d11 100644 --- a/dao/src/main/java/hxy/dream/dao/modle/UserModel.java +++ b/dao/src/main/java/hxy/dream/dao/modle/UserModel.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import hxy.dream.entity.dto.UserDTO; import hxy.dream.entity.enums.GenderEnum; import lombok.Data; import lombok.EqualsAndHashCode; @@ -18,4 +19,5 @@ public class UserModel extends Model { Integer age; GenderEnum gender; String password; + UserDTO userDTO; } diff --git a/entity/src/main/java/hxy/dream/entity/dto/DTO.java b/entity/src/main/java/hxy/dream/entity/dto/DTO.java new file mode 100644 index 0000000..3e2cce0 --- /dev/null +++ b/entity/src/main/java/hxy/dream/entity/dto/DTO.java @@ -0,0 +1,5 @@ +package hxy.dream.entity.dto; + +public interface DTO { + String dto(); +} diff --git a/entity/src/main/java/hxy/dream/entity/dto/UserDTO.java b/entity/src/main/java/hxy/dream/entity/dto/UserDTO.java index 1d3e853..79f696d 100644 --- a/entity/src/main/java/hxy/dream/entity/dto/UserDTO.java +++ b/entity/src/main/java/hxy/dream/entity/dto/UserDTO.java @@ -1,6 +1,15 @@ package hxy.dream.entity.dto; -public class UserDTO { +import lombok.Data; + +@Data +public class UserDTO implements DTO { String id; Enum gender; + + @Override + public String dto() { + + return id; + } } -- Gitee From 531da891533cf0ab7414bba2686e6ffdccffac34 Mon Sep 17 00:00:00 2001 From: aohanhongzhi Date: Mon, 7 Sep 2020 20:18:36 +0800 Subject: [PATCH 2/7] GenderEnum --- entity/src/main/java/hxy/dream/entity/dto/UserDTO.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/entity/src/main/java/hxy/dream/entity/dto/UserDTO.java b/entity/src/main/java/hxy/dream/entity/dto/UserDTO.java index 79f696d..95afb39 100644 --- a/entity/src/main/java/hxy/dream/entity/dto/UserDTO.java +++ b/entity/src/main/java/hxy/dream/entity/dto/UserDTO.java @@ -1,11 +1,12 @@ package hxy.dream.entity.dto; +import hxy.dream.entity.enums.GenderEnum; import lombok.Data; @Data public class UserDTO implements DTO { String id; - Enum gender; + GenderEnum gender; @Override public String dto() { -- Gitee From df7f3b2e64c927db79c7c3c92c8e21f1231b03de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=82=B2=E5=AF=92=E5=AE=8F=E5=BF=97?= Date: Tue, 8 Sep 2020 17:03:23 +0800 Subject: [PATCH 3/7] remove getByCode method in BaseEnum --- README.md | 2 +- .../hxy/dream/app/controller/UserController.java | 9 +++++++++ .../hxy/dream/app/entity/param/UserDtoParam.java | 14 ++++++++++++++ .../hxy/dream/common/configuration/BeanConfig.java | 6 ++++-- .../hxy/dream/common/serializer/DTOSerializer.java | 5 +++-- .../main/java/hxy/dream/entity/dto/UserDTO.java | 3 ++- 6 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/hxy/dream/app/entity/param/UserDtoParam.java diff --git a/README.md b/README.md index c618ecd..15c7f1f 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ loc |代码行数统计 | https://github.com/cgag/loc ### 命令打包,跳过TEST ```shell script -./gradlew bootJar -x test +./gradlew clean bootJar -x test ``` ### 多模块构建,依赖关系解决 diff --git a/app/src/main/java/hxy/dream/app/controller/UserController.java b/app/src/main/java/hxy/dream/app/controller/UserController.java index 7b1ad44..747ea70 100644 --- a/app/src/main/java/hxy/dream/app/controller/UserController.java +++ b/app/src/main/java/hxy/dream/app/controller/UserController.java @@ -1,5 +1,6 @@ package hxy.dream.app.controller; +import hxy.dream.app.entity.param.UserDtoParam; import hxy.dream.app.entity.param.UserParam; import hxy.dream.app.service.UserService; import hxy.dream.common.converter.StringToEnumConverter; @@ -67,4 +68,12 @@ public class UserController { UserModel userModel = userService.add(userParam); return BaseResponseVO.success(userModel); } + + @PostMapping("add/dto") + public BaseResponseVO saveBodyDto(@Valid @RequestBody UserDtoParam userParam) { + log.debug("\n====>当前添加的用户信息是{}", userParam); + + return BaseResponseVO.success(userParam); + } + } diff --git a/app/src/main/java/hxy/dream/app/entity/param/UserDtoParam.java b/app/src/main/java/hxy/dream/app/entity/param/UserDtoParam.java new file mode 100644 index 0000000..339d78f --- /dev/null +++ b/app/src/main/java/hxy/dream/app/entity/param/UserDtoParam.java @@ -0,0 +1,14 @@ +package hxy.dream.app.entity.param; + +import hxy.dream.entity.dto.UserDTO; +import hxy.dream.entity.enums.GenderEnum; +import lombok.Data; + +/** + * @author iris + */ +@Data +public class UserDtoParam { + UserDTO userDTO; + GenderEnum genderEnum; +} diff --git a/common/src/main/java/hxy/dream/common/configuration/BeanConfig.java b/common/src/main/java/hxy/dream/common/configuration/BeanConfig.java index f6135d5..1c13506 100644 --- a/common/src/main/java/hxy/dream/common/configuration/BeanConfig.java +++ b/common/src/main/java/hxy/dream/common/configuration/BeanConfig.java @@ -35,8 +35,10 @@ public class BeanConfig { // 自定义序列化器注入 Map, JsonSerializer> serializers = new LinkedHashMap<>(); serializers.put(BaseEnum.class, new BaseEnumSerializer()); - serializers.put(Date.class, new DateJsonSerializer()); - serializers.put(DTO.class, new DTOSerializer()); + serializers.put(Enum.class, new BaseEnumSerializer()); +// serializers.put(GenderEnum.class, new BaseEnumSerializer()); +// serializers.put(Date.class, new DateJsonSerializer()); +// serializers.put(DTO.class, new DTOSerializer()); jacksonObjectMapperBuilder.serializersByType(serializers); // 自定义反序列化器注入 diff --git a/common/src/main/java/hxy/dream/common/serializer/DTOSerializer.java b/common/src/main/java/hxy/dream/common/serializer/DTOSerializer.java index 9504675..3d1f026 100644 --- a/common/src/main/java/hxy/dream/common/serializer/DTOSerializer.java +++ b/common/src/main/java/hxy/dream/common/serializer/DTOSerializer.java @@ -14,9 +14,10 @@ public class DTOSerializer extends JsonSerializer { @Override public void serialize(DTO value, JsonGenerator gen, SerializerProvider serializers) throws IOException { - log.info("\n====>当前是DTO序列化"); + String dto = value.dto(); + log.info("\n====>当前是DTO序列化[{}]", dto); gen.writeStartObject(); - gen.writeStringField("dto", value.dto()); + gen.writeStringField("dto", dto); gen.writeEndObject(); } } diff --git a/entity/src/main/java/hxy/dream/entity/dto/UserDTO.java b/entity/src/main/java/hxy/dream/entity/dto/UserDTO.java index 79f696d..101ef7e 100644 --- a/entity/src/main/java/hxy/dream/entity/dto/UserDTO.java +++ b/entity/src/main/java/hxy/dream/entity/dto/UserDTO.java @@ -1,11 +1,12 @@ package hxy.dream.entity.dto; +import hxy.dream.entity.enums.GenderEnum; import lombok.Data; @Data public class UserDTO implements DTO { String id; - Enum gender; +// GenderEnum gender; @Override public String dto() { -- Gitee From 3f9e5b33109238556954d0db26511054c12cd8d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=82=B2=E5=AF=92=E5=AE=8F=E5=BF=97?= Date: Wed, 9 Sep 2020 09:40:46 +0800 Subject: [PATCH 4/7] https://github.com/FasterXML/jackson-databind/pull/2842 --- .../common/configuration/BeanConfig.java | 20 ++++++++++- .../SimpleDeserializersWrapper.java | 33 +++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 common/src/main/java/hxy/dream/common/serializer/SimpleDeserializersWrapper.java diff --git a/common/src/main/java/hxy/dream/common/configuration/BeanConfig.java b/common/src/main/java/hxy/dream/common/configuration/BeanConfig.java index 1c13506..d5605bc 100644 --- a/common/src/main/java/hxy/dream/common/configuration/BeanConfig.java +++ b/common/src/main/java/hxy/dream/common/configuration/BeanConfig.java @@ -9,10 +9,13 @@ package hxy.dream.common.configuration; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; import hxy.dream.common.serializer.BaseEnumDeserializer; import hxy.dream.common.serializer.BaseEnumSerializer; import hxy.dream.common.serializer.DTOSerializer; import hxy.dream.common.serializer.DateJsonSerializer; +import hxy.dream.common.serializer.SimpleDeserializersWrapper; import hxy.dream.entity.dto.DTO; import hxy.dream.entity.enums.BaseEnum; import hxy.dream.entity.enums.GenderEnum; @@ -20,6 +23,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import java.util.Date; import java.util.LinkedHashMap; @@ -35,7 +39,7 @@ public class BeanConfig { // 自定义序列化器注入 Map, JsonSerializer> serializers = new LinkedHashMap<>(); serializers.put(BaseEnum.class, new BaseEnumSerializer()); - serializers.put(Enum.class, new BaseEnumSerializer()); +// serializers.put(Enum.class, new BaseEnumSerializer()); // serializers.put(GenderEnum.class, new BaseEnumSerializer()); // serializers.put(Date.class, new DateJsonSerializer()); // serializers.put(DTO.class, new DTOSerializer()); @@ -49,4 +53,18 @@ public class BeanConfig { }; } + + @Bean + public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) { + SimpleDeserializersWrapper deserializers = new SimpleDeserializersWrapper(); + deserializers.addDeserializer(BaseEnum.class, new BaseEnumDeserializer()); + + SimpleModule simpleModule = new SimpleModule(); + simpleModule.setDeserializers(deserializers); + simpleModule.addSerializer(BaseEnum.class, new BaseEnumSerializer()); + + ObjectMapper objectMapper = builder.createXmlMapper(false).build(); + objectMapper.registerModule(simpleModule); + return objectMapper; + } } diff --git a/common/src/main/java/hxy/dream/common/serializer/SimpleDeserializersWrapper.java b/common/src/main/java/hxy/dream/common/serializer/SimpleDeserializersWrapper.java new file mode 100644 index 0000000..544f2e6 --- /dev/null +++ b/common/src/main/java/hxy/dream/common/serializer/SimpleDeserializersWrapper.java @@ -0,0 +1,33 @@ +package hxy.dream.common.serializer; + +import com.fasterxml.jackson.databind.BeanDescription; +import com.fasterxml.jackson.databind.DeserializationConfig; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.module.SimpleDeserializers; +import com.fasterxml.jackson.databind.type.ClassKey; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class SimpleDeserializersWrapper extends SimpleDeserializers { + static final Logger logger = LoggerFactory.getLogger(SimpleDeserializersWrapper.class); + @Override + public JsonDeserializer findEnumDeserializer(Class type, DeserializationConfig config, BeanDescription beanDesc) throws JsonMappingException { + + JsonDeserializer enumDeserializer = super.findEnumDeserializer(type, config, beanDesc); + if (enumDeserializer != null) { + return enumDeserializer; + } + logger.info("\n重写枚举查找逻辑"); + for (Class typeInterface : type.getInterfaces()) { + enumDeserializer = this._classMappings.get(new ClassKey(typeInterface)); + if (enumDeserializer != null) { + return enumDeserializer; + } + } + return null; + + +// return super.findEnumDeserializer(type, config, beanDesc); + } +} -- Gitee From 87f9464fe5c1e12d18b8738a3622ff51b894239c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=82=B2=E5=AF=92=E5=AE=8F=E5=BF=97?= Date: Wed, 9 Sep 2020 09:48:08 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E6=B3=A8=E5=85=A5=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2 \302\267 FasterXML_jackson-databind.pdf" | Bin 0 -> 455528 bytes ...m_FasterXML_jackson-databind_pull_2842.png | Bin 0 -> 1530826 bytes .../SimpleDeserializersWrapper.java | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 "asset/img/findCustomEnumDeserializer by interfaces by aohanhongzhi \302\267 Pull Request #2842 \302\267 FasterXML_jackson-databind.pdf" create mode 100644 asset/img/github.com_FasterXML_jackson-databind_pull_2842.png diff --git "a/asset/img/findCustomEnumDeserializer by interfaces by aohanhongzhi \302\267 Pull Request #2842 \302\267 FasterXML_jackson-databind.pdf" "b/asset/img/findCustomEnumDeserializer by interfaces by aohanhongzhi \302\267 Pull Request #2842 \302\267 FasterXML_jackson-databind.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..2e1c8221e0c27daaad27a20efdc3b9feb0b6bf82 GIT binary patch literal 455528 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 )04I`XU4&-uU#yod&TM&t-DKyfAi5U}7 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