package com.xxx.ssptsppt.dataexchange.utils; import com.xxx.maybee.engine.utils.FileUtil; import com.xxx.maybee.engine.utils.PubString; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Map; public class Confs { private static Map<String, File> confFiles; static { confFiles = new HashMap<>(); String tmpDir = "tmpconf/"; ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); try { Resource[] resources = resolver.getResources("/*.json"); for (Resource resource : resources) { String confName = resource.getFilename(); InputStream confIs = resource.getInputStream(); File confFile = extractFile(confName, confIs, tmpDir); confFiles.put(confName, confFile); } } catch (IOException e) { e.printStackTrace(); } } private static File extractFile(String confName, InputStream confIs, String tmpDir) { File tmpConfDir = new File(tmpDir); if (!tmpConfDir.exists()) { boolean mkdirs = tmpConfDir.mkdirs(); if (!mkdirs) { throw new RuntimeException("临时配置文件无法创建!"); } } File confFilePath = new File(tmpConfDir, confName); try { FileUtil.saveToFile(confIs, confFilePath, true, false); } catch (IOException e) { FileUtil.delFolder(tmpDir); throw new RuntimeException("配置文件提取失败!"); } return confFilePath; } public static File getConf(String confFileName) { if (PubString.isNullOrSpace(confFileName)) { return null; } return confFiles.get(confFileName); } }