注解实现字典值转换

注解实现字典值转换

1 背景

项目中对数据字典值、机构名称、创建人和更新人等编码值的转换方式一般通过关联特定表查询对应的name,

这样的查询效率低且对于不熟悉业务的新员工很不友好,因此想要开发通过注解实现编码值转换的功能

2 设计思路

通过在需要转换的字段上添加注解标识需要转换的字段,再通过fastjson的序列化完成对特定字段的处理

3 实现方式

通过继承WebMvcConfigurer进行统一的http请求信息管理,使用FastJsonHttpMessageConverter作为http消息转换类,

添加自定义的序列化类,完成注解字段的转换
maven依赖

      <!-- fastjson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.76</version>
        </dependency>

		 <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.5</version>
        </dependency>

3.1 注解

3.1.1 注解结构

注解@CodeValue如下所示

public @interface CodeValue {


    /*** 编码类型 */
    CodeType type() default CodeType.DICT;

    /** 字典类型编码*/
    DictType dictType() default DictType.DEFAULT;

    /** 默认值*/
    String defaultValue() default "";
    
        /**
     * @Description
     *    扩展字段名,作为描述编码值的name字段,
     *    不填时默认为编码字段加Name后缀

     */
    String fieldName() default "";


}

type : 类型是CodeType ,代表的是编码值的类型,默认是字典类型

public enum CodeType {

    DICT,
    ORG,
    USER;

}

dictType:类型是DictType,当CodeValue是DICT字典类型时,该字段表示的是字典类型的编码值,如性别SEX

public enum DictType {

    DEFAULT("","空"),
    PROVINCE("province","省份"),
    SEX("sex","性别"),
    IS_START("is_start","是否启动");
    
      /** 字典类型编码 */
    private String code;
    /*** 描述*/
    private String description;
}

defaultValue: 类型是String,该字段表示的是当注解的字段值为空时的默认值

3.1.2 使用方法

注解直接在字段上使用,如下所示

public class BussinessDTO implements Serializable {

    // 转换字典类型不需要指定type字段,指定字典类型的枚举即可
    @CodeValue(dictType = Dict
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值