Skip to content

Commit

Permalink
build: 发布 1.4.5 版本
Browse files Browse the repository at this point in the history
  • Loading branch information
houkunlin committed Nov 6, 2021
1 parent d4d269a commit c39ca78
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 3 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ plugins {
}

group = 'com.houkunlin'
version = '1.4.4.1'
version = '1.4.5'
sourceCompatibility = '1.8'
description = """
系统数据字典自动翻译成字典文本。可集合系统数据库中存储的用户数据字典,也可使用枚举做系统数据字典,主要用在返回数据给前端时自动把字典值翻译成字典文本信息;
Expand Down
41 changes: 41 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# 更改日志


## 1.4.5 版本

功能代码变更
- feat: 增加一个 DictText#replace 配置字段,标记是否用字典文本值替换字典值(在原字段上输出字典文本值)[#I4GT0N](https://gitee.com/houkunlin/system-dict-starter/issues/I4GT0N)
- feat: 增加一个 RefreshDictTypeEvent 事件刷新一个完整的字典类型信息 [#2](https://github.com/houkunlin-starter/system-dict-starter/issues/2#issuecomment-960424924)
- fix: 修复刷新单个字典值文本信息时文本信息未同步到字典类型对象里面的问题 [#2](https://github.com/houkunlin-starter/system-dict-starter/issues/2#issuecomment-960423263)
- feat: RefreshDictValueEvent 事件增加 updateDictType 字段决定在更新单个字典文本值时是否维护对应字典类型对象的字典值列表信息

涵盖 1.4.4.X 变更
- feat: 在刷新字典时当 DictValueVo.title == null 被视为删除相应的字典文本信息
- fix: 修复 SpringBoot 2.4.0 以下版本无法启动问题

配置文件变更:
- 增加一个 `system.dict.replace-value` 配置项(在原字典值字段上把字典值替换成字典文本输出)

由于引入了 DictText#replace 配置,会影响使用 DictText#mapValue=YES 和 system.dict.map-value=true 的配置,有使用上诉配置的请增加如下配置:
1. 使用注解 DictText#mapValue=YES 配置的请增加 DictText#replace=YES 配置
2. 使用全局 system.dict.map-value=true 配置的请增加 system.dict.replace-value=true 配置


## 1.4.4 版本

功能代码变更
- feat: 增加一个 `RefreshDictValueEvent` 事件可以刷新单个字典文本信息
- feat: 增加一个刷新字典的端点:`dictRefresh`
- feat: 增加使用 Redis 的发布/订阅 功能来处理字典刷新事件通知配置(需要设定配置文件来启用)
- refactor: 修改系统字典端点ID `dictSystem` 解决系统字典端点控制台日志警告问题
- refactor: MQ通知其他协同系统刷新字典默认未启用

配置文件变更:
- 移除 `system.dict.mq-header-source-key` 配置项
- 增加 `system.dict.mq-type` 配置项选择性启用 RefreshDictEvent 通知其他系统刷新字典
- 可选值:`none` 不启用(默认),`amqp` 使用 RabbitMQ, `redis` 使用 Redis 的发布/订阅功能
- 更改 `system.dict.refresh-dict-interval` 属性类型为 `Duration` 类型,默认值未改变

涵盖 1.4.3.X 变更
- fix: 修复因 Redis 客户端不同导致项目启动报错问题
- fix: 修复 Java 8 环境下 SpringBoot 打包后使用 java -jar 启动异常问题
6 changes: 4 additions & 2 deletions usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ public enum PeopleType implements DictEnum<Integer> {



前面在启动类上加了注解功能仅仅只是启用了基础的功能,我们的字典可能还会存储在数据库或本地文件等其他地方,因此需要向系统提供一个 `DictProvider` 对象
前面在启动类上加了注解功能仅仅只是启用了基础的功能,我们的字典可能还会存储在数据库(提供给用户动态设定、修改的数据字典信息)或本地文件等其他地方,因此需要向系统提供一个 `DictProvider` 对象来把数据库或者本地文件中的字典信息读取出来提供给 `@DictText` 来使用。

```java
@Component
Expand All @@ -112,7 +112,9 @@ public class MyProvider implements DictProvider {
}
```

上面 `DictProvider` 中返回的字典信息会被存储在缓存中,但是可能我们会有一些数据量特别大的场景不适合直接把数据存储在缓存中,有可能需要直接从数据库中读取,甚至去请求远程服务的信息,此时可以提供一个 `RemoteDict` 对象来处理这种情况,当在缓存中找不到字典文本值的时候,会调用 `RemoteDict` 对象来尝试进一步读取字典文本信息。
上面 `DictProvider` 中返回的字典信息会被存储在缓存中(`DictStore`)。

但是可能我们会有一些数据量特别大的场景不适合直接把数据存储在缓存中,有可能需要直接从数据库中读取。也许有些字典不是本系统的(可能是第三方服务提供的一些字典信息,需要去请求远程服务的信息),此时可以提供一个 `RemoteDict` 对象来处理这种情况,当在缓存中(`DictStore`)找不到字典文本值的时候,会调用 `RemoteDict` 对象来尝试进一步读取字典文本信息。

```java
@Component
Expand Down

0 comments on commit c39ca78

Please sign in to comment.