美文网首页spring cloud基础知识点
Thread.currentThread().getContex

Thread.currentThread().getContex

作者: WAHAHA402 | 来源:发表于2019-02-28 16:17 被阅读0次

    在使用Property和InputStream、OutputStream读取配置文件时,使用try/catch捕获IO异常时,发现下面的代码

    FileOutputStream fileOutputStream = null;
            JSONObject object = new JSONObject();
            try (InputStream inputStream = TestController.class.getResourceAsStream("application-dev.properties")){
                URL url = TestController.class.getClassLoader().getResource("application-dev.properties");
                fileOutputStream = new FileOutputStream(url.getPath());
    
                Properties properties = new Properties();
                if (!Objects.isNull(inputStream)){
                    properties.load(inputStream);
                }
                properties.setProperty("writeProperty3", "you made it!");
                properties.store(fileOutputStream, "写入属性");
    
    
            } finally {
    //            inputStream.close();
                fileOutputStream.close();
            }
    

    try()里面的inputstream资源通过当前类.class.getResoureAsStream("xx")时无法获取,而通过Thread.currentThread().getContextClassLoader().getResoureAsStream("xx")可以获取,有关解释是如果你使用当前类.class.getClassLoader(),可能会导致和当前线程所运行的类加载器不一致。
    有时间再深入探究下,先记录下来。
    参考链接

    相关文章

      网友评论

        本文标题:Thread.currentThread().getContex

        本文链接:https://www.haomeiwen.com/subject/xkqkuqtx.html