mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-05-05 05:07:54 +08:00
优化 SaTokenDao 组件更换时的逻辑
This commit is contained in:
parent
0f7e1e977c
commit
6977d3d136
@ -103,9 +103,12 @@ public class SaManager {
|
||||
}
|
||||
private static void setSaTokenDaoMethod(SaTokenDao saTokenDao) {
|
||||
if (SaManager.saTokenDao != null) {
|
||||
SaManager.saTokenDao.onChange();
|
||||
SaManager.saTokenDao.destroy();
|
||||
}
|
||||
SaManager.saTokenDao = saTokenDao;
|
||||
if (SaManager.saTokenDao != null) {
|
||||
SaManager.saTokenDao.init();
|
||||
}
|
||||
}
|
||||
public static SaTokenDao getSaTokenDao() {
|
||||
if (saTokenDao == null) {
|
||||
|
@ -201,11 +201,18 @@ public interface SaTokenDao {
|
||||
List<String> searchData(String prefix, String keyword, int start, int size, boolean sortType);
|
||||
|
||||
|
||||
// --------------------- 实例相关 ---------------------
|
||||
// --------------------- 生命周期 ---------------------
|
||||
|
||||
/**
|
||||
* 当 SaManager.saTokenDao 变更时,调用该方法
|
||||
* 当此 SaTokenDao 实例被装载时触发
|
||||
*/
|
||||
default void onChange() {
|
||||
default void init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 当此 SaTokenDao 实例被卸载时触发
|
||||
*/
|
||||
default void destroy() {
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -40,14 +40,6 @@ public class SaTokenDaoDefaultImpl implements SaTokenDao {
|
||||
* 存储数据过期时间的集合(单位: 毫秒), 记录所有 key 的到期时间 (注意存储的是到期时间,不是剩余存活时间)
|
||||
*/
|
||||
public Map<String, Long> expireMap = new ConcurrentHashMap<>();
|
||||
|
||||
/**
|
||||
* 构造函数
|
||||
*/
|
||||
public SaTokenDaoDefaultImpl() {
|
||||
initRefreshThread();
|
||||
}
|
||||
|
||||
|
||||
// ------------------------ String 读写操作
|
||||
|
||||
@ -261,11 +253,20 @@ public class SaTokenDaoDefaultImpl implements SaTokenDao {
|
||||
this.refreshThread.start();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 结束定时任务,不再定时清理过期数据
|
||||
* 组件被安装时,开始刷新数据线程
|
||||
*/
|
||||
@Override
|
||||
public void onChange() {
|
||||
public void init() {
|
||||
initRefreshThread();
|
||||
}
|
||||
|
||||
/**
|
||||
* 组件被卸载时,结束定时任务,不再定时清理过期数据
|
||||
*/
|
||||
@Override
|
||||
public void destroy() {
|
||||
this.refreshFlag = false;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user