diff --git a/README.md b/README.md
index a678bee0d7a9c58cabf645cfaeba05c4e4d960df..66ec1bf748135aa0a66822d6feeae0dbc8e1cbe6 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ jfinal weixin 的 spring boot starter,这个starter是为了方便boot用户
net.dreamlu
mica-weixin
- 2.0.6
+ 2.1.0
```
@@ -39,6 +39,9 @@ jfinal weixin 的 spring boot starter,这个starter是为了方便boot用户
### Api
- 类添加`@WxApi`,注解value为你的消息地址,使用/weixin/api,已经组合[@RequestMapping和@Controller]
+### access token cache
+您可以配置 [mica-caffeine](https://gitee.com/596392912/mica/tree/master/mica-caffeine) 或 [mica-redis](https://gitee.com/596392912/mica/tree/master/mica-redis) 实现 access token 的缓存。
+
### 配置
| 配置项 | 默认值 | 说明 |
| ----- | ------ | ------ |
@@ -71,7 +74,11 @@ dream:
- `access-token-cache`建议配置有效时间7100秒。
## 更新说明
-### 2020-12-16 2.0.6
+### 2021-04-27 2.1.0
+- Spring cache 对象改为每次读取, caffeine 会刷新,照成引用为 null。
+- 升级 jfinal-weixin 到 3.1。
+
+### 2020-03-20 2.0.6
- 升级 jfinal-weixin 到 3.0。
### 2020-12-16 2.0.5
diff --git a/mica-weixin-demo/pom.xml b/mica-weixin-demo/pom.xml
index 1b803be6b3897b21638bfc79875167efcbf0c9b9..df19643e4354b2c11ee76680ca0b2749f0d555f2 100644
--- a/mica-weixin-demo/pom.xml
+++ b/mica-weixin-demo/pom.xml
@@ -33,13 +33,19 @@
net.dreamlu
mica-weixin
- 2.0.6
+ 2.1.0
-
+
+
+
+
+
+
+
-
+
diff --git a/mica-weixin/build.gradle b/mica-weixin/build.gradle
index ae1c6eac1b72c7eec1e1e693740f899357f94db2..f0856f315e5edfd8153afb44c59952b017c2cdfb 100644
--- a/mica-weixin/build.gradle
+++ b/mica-weixin/build.gradle
@@ -5,10 +5,10 @@ ext {
javaVersion = JavaVersion.VERSION_1_8
springBootVersion = "2.4.4"
jfinalVersion = "4.9.08"
- jfinalWeixinVersion = "3.0"
+ jfinalWeixinVersion = "3.1"
okhttpVersion = "3.14.9"
micaAutoVersion = "2.0.4"
- lombokVersion = "1.18.18"
+ lombokVersion = "1.18.20"
}
allprojects {
diff --git a/mica-weixin/gradle.properties b/mica-weixin/gradle.properties
index f79700989d9b40169eac3ec112b2e3b474de35c9..54503c8447a7e018b968579d088e9f3b4db566fe 100644
--- a/mica-weixin/gradle.properties
+++ b/mica-weixin/gradle.properties
@@ -1,4 +1,4 @@
-VERSION=2.0.6
+VERSION=2.1.0
GROUPID=net.dreamlu
userName=chunmeng
diff --git a/mica-weixin/src/main/java/net/dreamlu/weixin/cache/SpringAccessTokenCache.java b/mica-weixin/src/main/java/net/dreamlu/weixin/cache/SpringAccessTokenCache.java
index ec85561b024b21a8daee47128e8b330989e2bf42..12511a545707dfbaca1c35d21b709b526e8cf5d7 100644
--- a/mica-weixin/src/main/java/net/dreamlu/weixin/cache/SpringAccessTokenCache.java
+++ b/mica-weixin/src/main/java/net/dreamlu/weixin/cache/SpringAccessTokenCache.java
@@ -2,7 +2,11 @@ package net.dreamlu.weixin.cache;
import com.jfinal.weixin.sdk.cache.IAccessTokenCache;
import lombok.RequiredArgsConstructor;
+import net.dreamlu.weixin.properties.DreamWeixinProperties;
import org.springframework.cache.Cache;
+import org.springframework.cache.CacheManager;
+
+import java.util.Objects;
/**
* 基于 spring cache 的 weixin token 缓存
@@ -12,20 +16,28 @@ import org.springframework.cache.Cache;
@RequiredArgsConstructor
public class SpringAccessTokenCache implements IAccessTokenCache {
private final static String ACCESS_TOKEN_PREFIX = "dream-weixin:token:";
- private final Cache cache;
+ private final CacheManager cacheManager;
+ private final DreamWeixinProperties properties;
@Override
public String get(String key) {
- return cache.get(ACCESS_TOKEN_PREFIX + key, String.class);
+ return getCache().get(ACCESS_TOKEN_PREFIX + key, String.class);
}
@Override
public void set(String key, String jsonValue) {
- cache.put(ACCESS_TOKEN_PREFIX + key, jsonValue);
+ getCache().put(ACCESS_TOKEN_PREFIX + key, jsonValue);
}
@Override
public void remove(String key) {
- cache.evict(ACCESS_TOKEN_PREFIX + key);
+ getCache().evict(ACCESS_TOKEN_PREFIX + key);
+ }
+
+ private Cache getCache() {
+ String accessTokenCacheName = properties.getAccessTokenCache();
+ Cache cache = cacheManager.getCache(accessTokenCacheName);
+ return Objects.requireNonNull(cache, "AccessToken cache is null.");
}
+
}
diff --git a/mica-weixin/src/main/java/net/dreamlu/weixin/config/DreamWeixinAutoConfiguration.java b/mica-weixin/src/main/java/net/dreamlu/weixin/config/DreamWeixinAutoConfiguration.java
index b5bead83b767e5e706f144456ac9b9a1c18cc57e..59d98698ff3467dbc884f8d3301ae74558ffea2c 100644
--- a/mica-weixin/src/main/java/net/dreamlu/weixin/config/DreamWeixinAutoConfiguration.java
+++ b/mica-weixin/src/main/java/net/dreamlu/weixin/config/DreamWeixinAutoConfiguration.java
@@ -5,7 +5,6 @@ import net.dreamlu.weixin.cache.SpringAccessTokenCache;
import net.dreamlu.weixin.properties.DreamWeixinProperties;
import net.dreamlu.weixin.spring.MsgInterceptor;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
@@ -26,8 +25,7 @@ public class DreamWeixinAutoConfiguration {
@Bean
public SpringAccessTokenCache springAccessTokenCache(CacheManager cacheManager,
DreamWeixinProperties properties) {
- Cache cache = cacheManager.getCache(properties.getAccessTokenCache());
- return new SpringAccessTokenCache(cache);
+ return new SpringAccessTokenCache(cacheManager, properties);
}
@Configuration