zoukankan      html  css  js  c++  java
  • spring 加载jar包中的配置文件

    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);
        }
    }
    

      

  • 相关阅读:
    JavaScript链式调用
    Javascript设计模式(2)-单体模式
    Javascript设计模式(1)
    stm32结合产品学习01—产品的框架
    【目标检测-模型对比1】R-CNN、SPPnet、Fast R-CNN、Faster R-CNN的对比
    【目标检测-框架测试】mmdetection的安装与使用
    【机器学习-笔记1】吴恩达网课笔记1——机器学习策略
    【算法】P1004 方格取数
    【算法】UVa 11624, Fire! 解题心得
    vector
  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/9474249.html
Copyright © 2011-2022 走看看