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

      

  • 相关阅读:
    分页实现
    jquery扩展提示框
    可拖拽可扩展面板
    单表查询结果转换成泛型集合
    压缩远程图片并返回
    windows下python安装架包的问题
    从网络上下载数据
    自己实现jquery
    如何利用拼音首字母查询数据库
    正则表达式
  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/9474249.html
Copyright © 2011-2022 走看看