# project-dict
**Repository Path**: cdair/project-dict
## Basic Information
- **Project Name**: project-dict
- **Description**: Dict/dictionary is a easy and simple tool for most project
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2016-09-01
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# project-dict
Dict/dictionary is a easy and simple tool for most project.
/**
* 使用如下:
*
* 提供两种实现方式
*
* 一、单服务器->实现DBMemDictCacheDemo的getAllList和save即可。
* 在服务器启动时初始化DictManager.init(new DBMemDictCache(new DBMemDictCacheDemo()));
* 会加载实体BaseDict对应表到内存中,BaseDict默认采用hibernate配置
*
* 注意1.如果您的系统也采用hibernate,请在spring配置文件中添加(采用mybatis请忽略这一点)
*
com.air.utils.dict.*
2. DBMemDictCacheDemo 实现save方法时
每次获取字典数据的时候,如果内存中没有会调用save方法
调用save方法时,请您自己判断数据库是否已经存在相同数据,区分数据的唯一条件是:company+project+type
* 二、分布式->实现RedisDictCacheDemo的getDict和save即可。
* 在服务器启动时初始化DictManager.init(new RedisDictCache(new RedisDictCacheDemo()));
* 不会加载任何数据到内存中
* 注意:1.您需要单独把你要的数据转发到您的redis中,redis中的key请参考BaseDict中的getKey,value为整个type对应的值,是一个List
*
* 2.在实现RedisDictCacheDemo中的getDict和save方法,请不要重新定义cacheKey
*
*
* 使用方式:
* 定义类如下
* @BeanType(type = 112,description="公司列表")
public class CompanyTest extends BaseDict{
@BeanAttr(cnLabel="系统默认1",enLabel="CompanyName1",sort=1,parentId=COMPANY1)
public static final long COMPANY2=2L;
}
* 获取字典:
* DictManager.getDict(CompanyTest.class, CompanyTest.COMPANY2)
*
* 获取缓存key:
* DictManager.getCacheKey(CompanyTest.class, CompanyTest.COMPANY2)
*
* 获取字典Value:
* DictManager.getValue(CompanyTest.class, CompanyTest.COMPANY2)
*
* 获取整个类型字典:
* DictManager.getList(CompanyTest.class)
*
* 如有疑问请参考测试包中的DictManagerTest
*/