Jackson 序列化字典字段属性(升级)
前言
回看 Jackson 序列号字典字段属性 内容的时候发现,业务开发过程中,不一定需要转换成完整的对象返回,有时候单纯的只是想要看显示值而已,不关心码值。
所有有了升级的想法。可以支持多种不同的返回类型。
既然是多种,又是不同。很自然的就想到的策略模式,然后就用上了策略枚举。有关策略枚举的内容,有兴趣的可以查看一下本人的 策略枚举的用法 专栏。
正文
1. 返回类型枚举 DictReEnum
该枚举的主要用途是在 字典注解中,指定需要返回的类型。是字符串,还是字典对象。通过枚举的方式,实现强制绑定,方便管理所有的返回类型。
package com.cah.project.core.annotation;
import com.cah.project.core.cache.DictCacheUtil;
import com.cah.project.core.domain.bo.DictData;
/**
* 功能描述: 字典返回类型 <br/>
*/
public enum DictReEnum {
/** 字典字符 */
STRING {
@Override
public Object getLabel(String type, String separator, String code) {
return changeLabel(type, separator, code);
}
},
/** 字典对象 */
DICT_DATA {
@Override
public Object getLabel(String type, String separator, String code) {
DictData dd = new DictData();
dd.setType(type);
dd.setValue(code);
dd.setLabel(changeLabel(type, separator, code));
return dd;
}
},
;
/**
* 功能描述: 改变值 <br/>
*
* @param type 字典类型
* @param separator 分隔符
* @param code 字典码值
* @return "java.lang.String"
*/
private static String changeLabel(String type, String separator,