- 字典管理功能,提供控制台功能
- 是一个依赖包,依赖后应用启动后会字典数据加载到内存中
- 支持对字典的转义api,支持map、普通java对象,以及部分其他api
git clone https://github.com/hbq969/h-dict.git
cd h-dict/src/main/resources/static
nvm use 20
npm run build
cd h-dict/
mvn -U package install
- 依赖
<dependency>
<groupId>com.github.hbq969</groupId>
<artifactId>h-dict</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
- 配置
h2数据库
# 数据源配置(省略)
...
# mybatis配置
mybatis:
# 数据库类型,支持 embedded/mysql/oracle
dialog: embedded
# 追加一下内容(如果原有内容存在)
mapper-locations:
- classpath*:**/mapper/common/*Mapper.xml
- classpath*:**/mapper/${mybatis.dialog}/*Mapper.xml
# 添加字典管理控制台页面
spring:
mvc:
resource-handler-registry:
entries:
- handlers: /ui-dict/**
locations: classpath:/static/ui-dict/
# 开启字典管理
dict:
enabled: true
# dic控制台接口访问token头
dictToken: hbq969@gmail.com
# map转义时转义后字段的前缀
map-key-prefix: hbq
# 缓存字典数据重载周期
reload:
cron: 0,30 * * * * *
http://ip:port/[${server.servlet.context-path}]/ui-dict/index.html
- 查询列表
- 新增字典
- 新增固定枚举值
- api接口说明
- 针对map转义
# 开启字典管理
dict:
enabled: true
# map转义时转义后字段的前缀
map-key-prefix: fmt
import com.github.hbq969.code.dict.service.api.impl.MapDictHelperImpl;
@Autowired
private MapDictHelperImpl mapDic;
@Autowired
private ListMapDictHelperImpl listDic;
Map<String,Object> map = new HashMap<>();
map.put('region','suzhou');
mapDic.tranForDict(map);
List<Map> list = new ArrayList<>();
list.add(map);
listDic.tranForDict(list);
// 转义后map
{'region':'suzhou','fmtRegion':'苏州'}
- java对象转义
import com.github.hbq969.code.dict.service.api.impl.ModelDictHelperImpl;
@Autowired
private ModelDictHelperImpl modelDic;
@Autowired
private ListModelDictHelperImpl listDic;
@Data
Class Foo{
@Td(fmtFieldName="fmtRegion")
private String region;
private String fmtRegion;
}
Foo foo = new Foo();
foo.setRegion('suzhou');
modelDic.tranForDict(foo);
List<Foo> list = new ArrayList<>();
list.add(foo);
listDic.tranForDict(list);
// 转义后
foo.getFmtRegion()=> '苏州'
- 使用maven模版创建一个SpringBoot工程
# 安装模版
git clone https://github.com/hbq969/h-archetype.git
cd h-archetype/target/generated-sources/archetype
mvn install
# 使用模版创建工程
cd -
mvn archetype:generate -DarchetypeGroupId=com.github.hbq969 -DarchetypeArtifactId=h-archetype -DarchetypeVersion=1.0-SNAPSHOT -DgroupId=com.github.hbq969 -Dversion=1.0-SNAPSHOT -DartifactId=h-example -Dpackage=com.github.hbq969 -Dproduct=code -Dmodule=example -DappPort=30000 -Dauthor=hbq969@gmail.com
# 运行demo工程
cd h-example
mvn spring-boot:run
- 访问Dashboard页面
http://localhost:30000/api/hbq/code/example/ui-dict/index.html
这时你就可以管理这个应用的字典数据了,控制台添加、删除、更新字典数据都会被实时更新到应用缓存中,应用中在通过提供的api接口进行字典查询、转义等操作。