fix 修复 OssFactory 在程序启动未调用api 没有初始化 导致无法订阅配置更改问题

This commit is contained in:
疯狂的狮子li 2021-11-17 13:50:58 +08:00
parent 81d04fb31f
commit eb844e3260
2 changed files with 15 additions and 7 deletions

View File

@ -24,18 +24,22 @@ import java.util.concurrent.ConcurrentHashMap;
@Slf4j @Slf4j
public class OssFactory { public class OssFactory {
static { /**
* 服务实例缓存
*/
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 -> { RedisUtils.subscribe(CloudConstant.CACHE_CONFIG_KEY, String.class, msg -> {
refreshService(msg); refreshService(msg);
log.info("订阅刷新OSS配置 => " + msg); log.info("订阅刷新OSS配置 => " + msg);
}); });
} }
/**
* 服务实例缓存
*/
private static final Map<String, ICloudStorageStrategy> SERVICES = new ConcurrentHashMap<>();
/** /**
* 获取默认实例 * 获取默认实例
*/ */

View File

@ -16,6 +16,7 @@ import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.RedisUtils; import com.ruoyi.common.utils.RedisUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.oss.constant.CloudConstant; import com.ruoyi.oss.constant.CloudConstant;
import com.ruoyi.oss.factory.OssFactory;
import com.ruoyi.system.domain.SysOssConfig; import com.ruoyi.system.domain.SysOssConfig;
import com.ruoyi.system.domain.bo.SysOssConfigBo; import com.ruoyi.system.domain.bo.SysOssConfigBo;
import com.ruoyi.system.domain.vo.SysOssConfigVo; import com.ruoyi.system.domain.vo.SysOssConfigVo;
@ -49,6 +50,7 @@ public class SysOssConfigServiceImpl extends ServicePlusImpl<SysOssConfigMapper,
@PostConstruct @PostConstruct
public void init() { public void init() {
List<SysOssConfig> list = list(); List<SysOssConfig> list = list();
// 加载OSS初始化配置
for (SysOssConfig config : list) { for (SysOssConfig config : list) {
String configKey = config.getConfigKey(); String configKey = config.getConfigKey();
if ("0".equals(config.getStatus())) { if ("0".equals(config.getStatus())) {
@ -56,6 +58,8 @@ public class SysOssConfigServiceImpl extends ServicePlusImpl<SysOssConfigMapper,
} }
setConfigCache(true, config); setConfigCache(true, config);
} }
// 初始化OSS工厂
OssFactory.init();
} }
@Override @Override