From 45ac0f23e12ac2a45c6affe9e39d0897e4fad618 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期四, 16 二月 2023 17:06:10 +0800 Subject: [PATCH] !286 合并 多租户功能 * add 新增 ruoyi-common-tenant 多租户模块 全框架适配多租户改动 * update 优化 隐藏页面主键 * remove 移除 缓存列表功能(多租户缓存功能繁杂多样 没有办法在页面管理) * update 重构 全局缓存KEY 与 常用缓存KEY做区分 * update 重构 OssFactory 加载方式 改为每次比对配置做实例更新 * update 优化 SaTokenDao 改为 Bean 注入 便于扩展 * update 重构 项目初始化数据改为懒加载 不提供热加载 * update 重构 验证码开关使用配置文件(经调查少有动态开启需求) * update 优化 启用 sqlserver 高版本语法 简化sql脚本语法 * update 优化 DataPermissionHelper 增加 开启/关闭 忽略数据权限功能 * update 优化 连接池增加 keepaliveTime 探活参数 * update 优化 调整连接池最长生命周期 防止出现警告 * update 优化 代码生成页面模板 校验不必要的表单数据 * add 新增 StringUtils splitTo 与 splitList 方法 优化业务代码 --- ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java | 42 +++++++++++++----------------------------- 1 files changed, 13 insertions(+), 29 deletions(-) diff --git a/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java index 885c7be..82467ef 100644 --- a/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java +++ b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java @@ -25,21 +25,6 @@ private static final Map<String, OssClient> CLIENT_CACHE = new ConcurrentHashMap<>(); /** - * 鍒濆鍖栧伐鍘� - */ - public static void init() { - log.info("鍒濆鍖朞SS宸ュ巶"); - RedisUtils.subscribe(OssConstant.DEFAULT_CONFIG_KEY, String.class, configKey -> { - OssClient client = getClient(configKey); - // 鏈垵濮嬪寲涓嶅鐞� - if (client != null) { - refresh(configKey); - log.info("璁㈤槄鍒锋柊OSS閰嶇疆 => " + configKey); - } - }); - } - - /** * 鑾峰彇榛樿瀹炰緥 */ public static OssClient instance() { @@ -55,25 +40,24 @@ * 鏍规嵁绫诲瀷鑾峰彇瀹炰緥 */ public static OssClient instance(String configKey) { - OssClient client = getClient(configKey); - if (client == null) { - refresh(configKey); - return getClient(configKey); - } - return client; - } - - private static void refresh(String configKey) { String json = CacheUtils.get(CacheNames.SYS_OSS_CONFIG, configKey); if (json == null) { throw new OssException("绯荤粺寮傚父, '" + configKey + "'閰嶇疆淇℃伅涓嶅瓨鍦�!"); } OssProperties properties = JsonUtils.parseObject(json, OssProperties.class); - CLIENT_CACHE.put(configKey, new OssClient(configKey, properties)); - } - - private static OssClient getClient(String configKey) { - return CLIENT_CACHE.get(configKey); + OssClient client = CLIENT_CACHE.get(configKey); + if (client == null) { + CLIENT_CACHE.put(configKey, new OssClient(configKey, properties)); + log.info("鍒涘缓OSS瀹炰緥 key => {}", configKey); + return CLIENT_CACHE.get(configKey); + } + // 閰嶇疆涓嶇浉鍚屽垯閲嶆柊鏋勫缓 + if (!client.checkPropertiesSame(properties)) { + CLIENT_CACHE.put(configKey, new OssClient(configKey, properties)); + log.info("閲嶈浇OSS瀹炰緥 key => {}", configKey); + return CLIENT_CACHE.get(configKey); + } + return client; } } -- Gitblit v1.9.3