From 8db78e0a5d5d3d47fe7ff4743dcdeb561f79535e Mon Sep 17 00:00:00 2001 From: moon69 <1016830869@qq.com> Date: Sat, 14 Oct 2023 12:36:00 +0800 Subject: [PATCH] =?UTF-8?q?SaTokenDao=20=E6=96=B0=E5=A2=9E=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=96=B9=E6=B3=95=20onChange=EF=BC=8C=E5=BD=93=20SaMa?= =?UTF-8?q?nager.saTokenDao=20=E5=8F=98=E6=9B=B4=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E8=AF=A5=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/dev33/satoken/SaManager.java | 4 ++-- .../main/java/cn/dev33/satoken/dao/SaTokenDao.java | 11 +++++++++-- .../cn/dev33/satoken/dao/SaTokenDaoDefaultImpl.java | 6 +++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/SaManager.java b/sa-token-core/src/main/java/cn/dev33/satoken/SaManager.java index ee1f552ef..a2dea0297 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/SaManager.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/SaManager.java @@ -102,8 +102,8 @@ public static void setSaTokenDao(SaTokenDao saTokenDao) { SaTokenEventCenter.doRegisterComponent("SaTokenDao", saTokenDao); } private static void setSaTokenDaoMethod(SaTokenDao saTokenDao) { - if((SaManager.saTokenDao instanceof SaTokenDaoDefaultImpl)) { - ((SaTokenDaoDefaultImpl)SaManager.saTokenDao).endRefreshThread(); + if (SaManager.saTokenDao != null) { + SaManager.saTokenDao.onChange(); } SaManager.saTokenDao = saTokenDao; } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDao.java b/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDao.java index 48682c74c..75a46cd42 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDao.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDao.java @@ -199,6 +199,13 @@ default void updateSessionTimeout(String sessionId, long timeout) { * @return 查询到的数据集合 */ List searchData(String prefix, String keyword, int start, int size, boolean sortType); - - + + + // --------------------- 实例相关 --------------------- + + /** + * 当 SaManager.saTokenDao 变更时,调用该方法 + */ + default void onChange() { + } } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDaoDefaultImpl.java b/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDaoDefaultImpl.java index dc9cbae73..eae8d6e9e 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDaoDefaultImpl.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDaoDefaultImpl.java @@ -260,12 +260,12 @@ public void initRefreshThread() { }); this.refreshThread.start(); } - + /** * 结束定时任务,不再定时清理过期数据 */ - public void endRefreshThread() { + @Override + public void onChange() { this.refreshFlag = false; } - }