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

      

  • 相关阅读:
    Generator 函数的异步应用
    Generator 函数的语法
    10 个最佳的 Node.js 的 MVC 框架
    Node.js 框架对比之 Express VS Koa
    JavaScript资源分享
    【转载】Web 研发模式演变
    学习资源整理
    超高影响力开源大放送,学习开发必备教科书
    LVS + KEEPALIVED + WINDOWS SERVER 2008 R2 ------高可用负载均衡(转)
    LVS DR模式 RealServer 为 Windows 2008 R2配置
  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/9474249.html
Copyright © 2011-2022 走看看