疯狂的狮子li
2021-11-17 eb844e3260657b6bb9de03c1e5feca50bdf8190d
fix 修复 OssFactory 在程序启动未调用api 没有初始化 导致无法订阅配置更改问题
已修改2个文件
22 ■■■■■ 文件已修改
ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java
@@ -24,18 +24,22 @@
@Slf4j
public class OssFactory {
    static {
        RedisUtils.subscribe(CloudConstant.CACHE_CONFIG_KEY, String.class, msg -> {
            refreshService(msg);
            log.info("订阅刷新OSS配置 => " + msg);
        });
    }
    /**
     * 服务实例缓存
     */
    private static final Map<String, ICloudStorageStrategy> SERVICES = new ConcurrentHashMap<>();
    /**
     * 初始化工厂
     */
    public static void init() {
        log.info("初始化OSS工厂");
        RedisUtils.subscribe(CloudConstant.CACHE_CONFIG_KEY, String.class, msg -> {
            refreshService(msg);
            log.info("订阅刷新OSS配置 => " + msg);
        });
    }
    /**
     * 获取默认实例
     */
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java
@@ -16,6 +16,7 @@
import com.ruoyi.common.utils.RedisUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.oss.constant.CloudConstant;
import com.ruoyi.oss.factory.OssFactory;
import com.ruoyi.system.domain.SysOssConfig;
import com.ruoyi.system.domain.bo.SysOssConfigBo;
import com.ruoyi.system.domain.vo.SysOssConfigVo;
@@ -49,6 +50,7 @@
    @PostConstruct
    public void init() {
        List<SysOssConfig> list = list();
        // 加载OSS初始化配置
        for (SysOssConfig config : list) {
            String configKey = config.getConfigKey();
            if ("0".equals(config.getStatus())) {
@@ -56,6 +58,8 @@
            }
            setConfigCache(true, config);
        }
        // 初始化OSS工厂
        OssFactory.init();
    }
    @Override