All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.dreamroute.mybatis.pro.base.enums.package-info Maven / Gradle / Ivy

/**
 * 描述:此包是枚举EnumMarker的序列化和反序列化的jackson实现,
 * JacksonSerializer的枚举类型可以是EnumMarker,也可以是Enum类型,
 * 但是JacksonDeserializer的枚举类型就不能是EnumMarker,必须是Enum类型或者是具体的枚举类型,
 * 开发JacksonDeserializer的灵感来源于这里:https://www.cnblogs.com/kelelipeng/p/13972138.html,
 * 事实上也可以使用Fastjson方式的序列化和反序列化方式,但是Fastjson在前些年出过几次比较重大的漏洞时间,
 * 加上Fastjson源码不够优秀,并且基本上是个人开发者,而jackson是Spring默认的序列化和反序列化工具包。
 *
 * 使用方式:
 * 1. 可以自定义HttpMessageConverter实现WebMvcConfigurer的configureMessageConverters方法,例如:
 * 
 * @Configuration
 * public class HttpMsgConverterConfig implements WebMvcConfigurer {
 *     @Override
 *     public void configureMessageConverters(@Nonnull List> converters) {
 *         converters.removeIf(e -> e instanceof MappingJackson2HttpMessageConverter);
 *
 *         SimpleModule module = new SimpleModule();
 *         module.addSerializer(Enum.class, new JacksonSerializer());
 *         module.addDeserializer(Enum.class, new JacksonDeserializer());
 *
 *         ObjectMapper om = new ObjectMapper();
 *         om.registerModule(module);
 *
 *         MappingJackson2HttpMessageConverter c = new MappingJackson2HttpMessageConverter(om);
 *         c.setObjectMapper(om);
 *
 *         converters.add(0, c);
 *     }
 * }
 * 
* 2. 也可以不自定义HttpMessageConverter,直接在EnumMarker头顶上加上序列化和反序列化的注解,例如: *
 *@JsonSerialize(using = JacksonSerializer.class)
 * @JsonDeserialize(using = JacksonDeserializer.class)
 * public interface EnumMarker extends Serializable {}
 * 
* * @author w.dehi.2021-12-19 */ package com.github.dreamroute.mybatis.pro.base.enums;




© 2015 - 2025 Weber Informatics LLC | Privacy Policy