# enum-converter **Repository Path**: liruohrh/enum-converter ## Basic Information - **Project Name**: enum-converter - **Description**: springboot机制,将enum转为指定值 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-26 - **Last Updated**: 2023-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README - 目的: web中自动转换enum为指定值 - 目前支持 - spring-webMvc(no-json会用到converter,json就看用的是jackson还是gson) - jackson - gson - mybatis, mybatis-plus - 有4种策略com.liruo.enumconverter.autoconfigure.properties.EnumValueStrategy - 可以在配置文件中配置, 默认是name,绝大多数框架都是这样,即不用配置 - ORDINAL: enum的rdianl函数 - NAME: enum的name函数 - SOURCE: 需要实现com.liruo.enumconverter.model.SourceEnum返回一个Integer或者String - 主要设计:实现SourceEnum接口, 用source方法返回作为序列化值,对这个值反序列化 - ORDINAL,NAME都只是使用框架本身的设计 - 除了spring-webMvc只支持string类型,额外加了一个IntStrToEnumConverterFactory - gson只支持name所以加了个IntEnumTypeAdapterFactory - EnableSourceEnumConverter注解: 用于SOURCE策略,jackson和mybatis需要绑定SourceEnum的实现类. - 使用com.liruo.enumconverter.annotation.EnumConverterRegistrar扫描当前包或者指定包 把SourceEnum的实现类加到com.liruo.enumconverter.annotation.SourceEnums这个bean中 - 如果不需要SOURCE策略,可以不用这个注解 - 未来计划: 注解指定某个字段进行序列化和反序列化,只能支持一个