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