# dictionary-solon-plugin **Repository Path**: solonlab/dictionary-solon-plugin ## Basic Information - **Project Name**: dictionary-solon-plugin - **Description**: java 字典翻译 + 字段替换 + 字段脱敏 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: http://dictionary.rish.top - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-09-22 - **Last Updated**: 2025-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ###### 直接上例子 ```java // 1. 实体 必须实现 DictEntity public class UserMember implements DictEntity { // 2. 固定map,用key,转换为value @KvConverter({ @Kv(k="1",v="男"), @Kv(k="0",v="女"), }) public int sex; // 3. 用枚举值,转换为枚举名称 @EnumConverter(EnumSmall.class) public int tx; // 4. 邮箱脱敏 @DesensitizedConverter(EmailDesensitizedAction.class) public String email = "2225w@qq.com"; // 5. 手机号码脱敏 @DesensitizedConverter(PhoneDesensitizedAction.class) public String phone = "1357759998"; // 6. 支持1v1对象嵌套,支持map、colloct、array对象嵌套 UserMember member; } ``` ###### 返回的json ```json { "tx":0, "txName":"FF_23", "sex":0, "sexName":"女", "phone":"135****9998", "email":"2****@qq.com", "member": { "tx":0, "txName":"FF_23", "sex":0, "sexName":"女", "phone":"135****9998", "email":"2****@qq.com" } } ``` ###### 自定义注解,只需3步 ```xml top.rish.converter dictionary-solon-plugin 1.0.1 top.rish.converter dictionary-spring-boot-starter 1.0.1 ``` ```java // 1. 定义注解 EnumConverter @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface EnumConverter { // 例如,你想将规则定为:用枚举的value替换为枚举的名称 Class> value(); } // 2. 实现EnumConverter的handler. public class EnumConverterHandler implements ConvertHandler { @Override public void convert(MetaMap metaMap /* 当前继承了DictEntity对应的一个map【中间产物】 */, DictEntity entity /*当前对象的值*/, Object value /*当前字段的值*/, FieldWrap fieldWrap /*当前字段的元信息*/, EnumConverter convert /*你的注解,传入的值*/ ) { // 这里进行转换为你想要的内容, // 对metaMap.put()一下, // 该jsonObject就会有你新put的字段了 Class> enumClass = convert.value(); Enum ev = RefKit.getEnumByValue(enumClass, value); if(ObjKit.isNotEmpty(ev)){ metaMap.set(fieldWrap.getName()+"Name", Objects.toString(ev)); } } } // 3. 注册bean到solon容器 @Configuration public class DictionaryConfiguration { @Bean public KvConverterHandlerDict kvConverterHandler() { return new KvConverterHandlerDict(); } @Bean public DesensitizedConverterHandlerDict desensitizedConverterHandler() { return new DesensitizedConverterHandlerDict(); } @Bean public EnumConverterHandlerDict enumConverterHandler() { return new EnumConverterHandlerDict(); } } ```