利用注解从缓存读取列表中涉及的数据字典

  • 在需要显示字典项的字段所对应的OR模型上,利用注解方式,在后台对列表数据进行Json序列化时,添加一个子类,字段值从缓存(本方案中采用memcached缓存)中加载的字典中读取。

     model类写法:
    
     ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190326172438784.jpg)
     注解类:
     import com.fasterxml.jackson.core.JsonGenerator;
     import  com.fasterxml.jackson.core.JsonProcessingException;
      import com.fasterxml.jackson.core.JsonStreamContext;
      import com.fasterxml.jackson.databind.JsonSerializer; 
      import com.fasterxml.jackson.databind.SerializerProvider;
      import com.framework.admin.dict.model.DictItem;
      import com.framework.admin.dict.util.DictItemUtil; 
      import com.framework.utils.string.StringUtil; import java.io.IOException;
     
     public class DictJsonSerialize   extends JsonSerializer {  
     public void serialize(String str, JsonGenerator generator,SerializerProvider provider)
         throws IOException, JsonProcessingException   {
         String attrName = generator.getOutputContext().getCurrentName();
         if (StringUtil.isNotEmpty(attrName))
         {
           generator.writeStartObject();
           if (StringUtil.isNotEmpty(str))
           {
             generator.writeStringField(attrName, str);
             DictItem dictItem = DictItemUtil.getItemByItemFullCode(str);
             if (dictItem != null) {
               generator.writeStringField(attrName + "Name", dictItem.getItemName());
             } else {
               generator.writeStringField(attrName + "Name", "");
             }
           }
           else
           {
             generator.writeStringField(attrName, "");
             generator.writeStringField(attrName + "Name", "");
           }
           generator.writeEndObject();
         }   } }
    

你可能感兴趣的:(利用注解从缓存读取列表中涉及的数据字典)