🎨 open模块移除Jedis强关联

This commit is contained in:
taneg 2021-05-14 10:52:04 +08:00 committed by GitHub
parent 15bd95c3cb
commit 65c1cdc07c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 153 additions and 6 deletions

View File

@ -2,11 +2,10 @@ package com.binarywang.spring.starter.wxjava.open.config.storage;
import com.binarywang.spring.starter.wxjava.open.properties.WxOpenProperties;
import lombok.RequiredArgsConstructor;
import me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps;
import me.chanjar.weixin.common.redis.WxRedisOps;
import me.chanjar.weixin.open.api.WxOpenConfigStorage;
import me.chanjar.weixin.open.api.impl.WxOpenInMemoryConfigStorage;
import me.chanjar.weixin.open.api.impl.WxOpenInRedisConfigStorage;
import me.chanjar.weixin.open.api.impl.WxOpenInRedisTemplateConfigStorage;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@ -35,9 +34,8 @@ public class WxOpenInRedisTemplateConfigStorageConfiguration extends AbstractWxO
return this.config(config, properties);
}
private WxOpenInRedisConfigStorage getWxOpenInRedisTemplateConfigStorage() {
private WxOpenInRedisTemplateConfigStorage getWxOpenInRedisTemplateConfigStorage() {
StringRedisTemplate redisTemplate = applicationContext.getBean(StringRedisTemplate.class);
WxRedisOps redisOps = new RedisTemplateWxRedisOps(redisTemplate);
return new WxOpenInRedisConfigStorage(redisOps, properties.getConfigStorage().getKeyPrefix());
return new WxOpenInRedisTemplateConfigStorage(redisTemplate, properties.getConfigStorage().getKeyPrefix());
}
}

View File

@ -91,6 +91,10 @@
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>
</dependencies>
<build>

View File

@ -0,0 +1,145 @@
package me.chanjar.weixin.open.api.impl;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import lombok.NonNull;
import me.chanjar.weixin.common.redis.JedisWxRedisOps;
import me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps;
import me.chanjar.weixin.common.redis.WxRedisOps;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.util.Pool;
/**
* <pre>
* RedisTemplateConfigStorage
* </pre>
*
* @author taneg
* @date 2021/05/13 11:12:35
*/
public class WxOpenInRedisTemplateConfigStorage extends AbstractWxOpenInRedisConfigStorage {
private final WxRedisOps redisOps;
public WxOpenInRedisTemplateConfigStorage(@NonNull StringRedisTemplate stringRedisTemplate, String keyPrefix) {
this(new RedisTemplateWxRedisOps(stringRedisTemplate), keyPrefix);
}
public WxOpenInRedisTemplateConfigStorage(@NonNull WxRedisOps redisOps, String keyPrefix) {
this.redisOps = redisOps;
this.keyPrefix = keyPrefix;
}
@Override
public String getComponentVerifyTicket() {
return redisOps.getValue(this.componentVerifyTicketKey);
}
@Override
public void setComponentVerifyTicket(String componentVerifyTicket) {
redisOps.setValue(this.componentVerifyTicketKey, componentVerifyTicket, Integer.MAX_VALUE, TimeUnit.SECONDS);
}
@Override
public String getComponentAccessToken() {
return redisOps.getValue(this.componentAccessTokenKey);
}
@Override
public boolean isComponentAccessTokenExpired() {
Long expire = redisOps.getExpire(this.componentAccessTokenKey);
return expire == null || expire < 2;
}
@Override
public void expireComponentAccessToken() {
redisOps.expire(this.componentAccessTokenKey, 0, TimeUnit.SECONDS);
}
@Override
public void updateComponentAccessToken(String componentAccessToken, int expiresInSeconds) {
redisOps.setValue(this.componentAccessTokenKey, componentAccessToken, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getAuthorizerRefreshToken(String appId) {
return redisOps.getValue(this.getKey(this.authorizerRefreshTokenKey, appId));
}
@Override
public void setAuthorizerRefreshToken(String appId, String authorizerRefreshToken) {
redisOps.setValue(this.getKey(this.authorizerRefreshTokenKey, appId), authorizerRefreshToken, 0, TimeUnit.SECONDS);
}
@Override
public String getAuthorizerAccessToken(String appId) {
return redisOps.getValue(this.getKey(this.authorizerAccessTokenKey, appId));
}
@Override
public boolean isAuthorizerAccessTokenExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.authorizerAccessTokenKey, appId));
return expire == null || expire < 2;
}
@Override
public void expireAuthorizerAccessToken(String appId) {
redisOps.expire(this.getKey(this.authorizerAccessTokenKey, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateAuthorizerAccessToken(String appId, String authorizerAccessToken, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.authorizerAccessTokenKey, appId), authorizerAccessToken, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getJsapiTicket(String appId) {
return redisOps.getValue(this.getKey(this.jsapiTicketKey, appId));
}
@Override
public boolean isJsapiTicketExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.jsapiTicketKey, appId));
return expire == null || expire < 2;
}
@Override
public void expireJsapiTicket(String appId) {
redisOps.expire(this.getKey(this.jsapiTicketKey, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateJsapiTicket(String appId, String jsapiTicket, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.jsapiTicketKey, appId), jsapiTicket, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getCardApiTicket(String appId) {
return redisOps.getValue(this.getKey(this.cardApiTicket, appId));
}
@Override
public boolean isCardApiTicketExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.cardApiTicket, appId));
return expire == null || expire < 2;
}
@Override
public void expireCardApiTicket(String appId) {
redisOps.expire(this.getKey(this.cardApiTicket, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateCardApiTicket(String appId, String cardApiTicket, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.cardApiTicket, appId), cardApiTicket, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public Lock getLockByKey(String key) {
return redisOps.getLock(key);
}
}