• Springboot 创建的maven获取resource资源下的文件的两种方式


    Springboot 创建的maven项目 打包后获取resource下的资源文件的两种方式:

    资源目录:

      resources/config/wordFileXml/wordFileRecord.xml  文件信息

    获取方式如下:

    一:代码打成jar包,lib文件夹和config配置文件同时复制到同一个linux文件夹里面,启动jar文件,获取当前config文件夹的配置文件资源

     资源结构:

      

      获取方式:

       /**
        * 获取lib + jar + resource 方式的resource配置文件中的文件
       */
       Document document = Dom4jUtil.getDocument("config/wordFileXml/wordFileRecord.xml");    //指定未编译,直接IntelliJ IDEA 创建的maven目录
        
    
    //调用下面方法.....
    
            /**
         * 根据xml路径获得Document文本对象
         * 微服务,打成完成的jar,不能再
         * @param path  xml路径
         * @return Document对象
         */
        public static Document getDocument(String path) {
    
                    
                  System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>:"+path);
            /**
             * 获取普通服务的方式
             *         lib + jar + resource配置文件
             */
    
            SAXReader reader = new SAXReader();
            Document document = null;
            try {
                //获取当前线程
                Thread t=Thread.currentThread();
                //获取当前线程的classLoader
                ClassLoader c=t.getContextClassLoader();
                //获取resouce下面指定文件的file路径(相对路径转绝对路径,将%20的乱码转为空格)
                String filePath=c.getResource(path).getFile().replaceAll("%20", " ");
                document=reader.read(filePath);
            } catch (DocumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
            return document;
        }

    二:代码+lib + resource配置文件 全部打成jar包,直接启动jar文件,获取当前config文件夹的配置文件资源(通过stream 流的方式获取配置信息)

     资源结构:

      

     获取方:

        /**
         * 微服务获取resource配置文件方式
         * lib、代码、打包到整个jar包中
         * 获取jar包中的resource配置文件中的文件
         */
        Document document = Dom4jUtil.getDocument("/BOOT-INF/classes/config/wordFileXml/wordFileRecord.xml");      //指定编译后的jar包中的文件目录,否则找不到
    
    
    //调用下面方法.......
    
    
        /**
         * 根据xml路径获得Document文本对象
         * 微服务,打成完成的jar,不能再
         * @param path  xml路径
         * @return Document对象
         */
        public static Document getDocument(String path) {
    
            System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>:"+path);
    
    
            /**
             * 微服务获取resouce配置文件方式
             *         jar包,resouce,代码,全部再一个jar里面,
             *     通过流的形式获取配置文件,然后转为xml文件
             */
            Document document = null;
            Thread t=Thread.currentThread();
            //返回读取指定资源的输入流
            InputStream is = t.getClass().getResourceAsStream(path);
            //字节流转为字符流,并输出拼接为字符串
            BufferedReader br=new BufferedReader(new InputStreamReader(is));
            String s="";
            String xml="";
            try {
                //循环输出,拼接
                while((s=br.readLine())!=null){
                    xml+=s;
                }
            } catch (IOException e) {
                log.error("Dom4jUtil ———> getDocument 获取xml流文件信息报错,原因:" +e.getMessage());
    //            e.printStackTrace();
            }
            try {
                //将字符串转换为xml格式,返回document
                document = DocumentHelper.parseText(xml);
            } catch (DocumentException e) {
                log.error("Dom4jUtil ———> getDocument 创建document对象错误,原因:" +e.getMessage());
                document = null;
    //            e.printStackTrace();
            }
    
            return document;
        }
  • 相关阅读:
    iOS7,iOS8和iOS9的区别
    NSUrl
    什么是 MIME TYPE?
    TCP协议与UDP协议的区别
    KVC、KVO、NSNotification、delegate 总结及区别
    cocoapods 安装过程及常见问题
    素材丶资料
    方法 笔记(二)
    UIWebView UITextView
    在oj中Python的循环输入问题解决
  • 原文地址:https://www.cnblogs.com/mh-study/p/10318193.html
Copyright © 2020-2023  润新知