Skip to content
On this page

1 术语

假如有以下数据,第一列我们称为 字典分组,第二列称为字典码,第三列称为字典描述
gender,0,男 gender,1,女 orderStatus,0,创建 orderStatus,1,已支付 orderStatus,2,已评价

2 初始化

你可以在系统启动的时候初始化字典,字典的数据在哪获取easyTrans不关心,json也好,properties也好,微服务也好,查数据库也好都可以。

java
 @Autowired
 private  DictionaryTransService dictionaryTransService;

 //微服务模式下需要用到redis  请设置  easy-trans.dict-use-redis:true 和  easy-trans.is-enable-redis:true
  

 Map<String,String> transMap = new HashMap<>();
 transMap.put("0","");
 transMap.put("1","");
 dictionaryTransService.refreshCache("gender",transMap);

 //如果字典修改了 需要刷新所有微服务的字典缓存 请调用:
  dictionaryTransService.refreshCacheAndNoticeOtherService("gender",transMap);

3 国际化

有的时候我们的系统需要国际化,字典国际化可以按照以下写法来初始化数据。

java
@Autowired
private  DictionaryTransService dictionaryTransService;
 //字典国际化支持
Map<String,String> transMap = new HashMap<>();
// 如果不要国际化则是  ransMap.put("0","男");  transMap.put("1","女");
transMap.put("0_zh_CN","");
transMap.put("1_zh_CN","");
transMap.put("0_en","boy");
transMap.put("1_en","girl");
dictionaryTransService.refreshCache("gender",transMap);
//开启国际化支持,不要国际化的可以去掉 getLanguageTag 可以在spring里取
dictionaryTransService.openI18n(new LocaleGetter(){
           @Override
          public String getLanguageTag() {
              Locale locale = LocaleContextHolder.getLocale();
              return locale.toLanguageTag();//springboot可以国际化可以通过这段代码告诉框架当前语言环境
          }
});

4 数据刷新

java
//刷新整组字典
dictionaryTransService.refreshCacheAndNoticeOtherService(String dictGroupCode, Map<String, String> dicMap);
//刷新单个字典项
dictionaryTransService.refreshDictItem("gender","1","girl");
//删除字典分组
removeDictGroupAndNoticeOtherService("gender");

Apache 2.0 Licensed