当前位置:网站首页>获取配置文件properties中的数据

获取配置文件properties中的数据

2022-06-21 09:28:00 凄戚

环境

在开发中我们将经常用到的一些常量和一些繁琐的配置可以提取出来,方便我们的使用。这些数据经常保存在配置文件中
配置文件经常和工具类配合使用。当需要使用它们时通过查找配置文件或调用工具类方法来实现。
这些properties文件都是在src/main/resource 下直接存放,而不能再放到文件夹里,否则会找不到。

一般有两种类似的获取方式:

一、直接通过某个线程获取

		Properties p = new Properties();
        try {
    
            p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("identity.properties"));
        } catch (IOException e) {
    
            e.printStackTrace();
        }
        String wordTxt = p.getProperty("wordTxt").trim();

wordTxt是我们在对应的identity.properties中的参数。

二、通过类的类加载器获取

			ClassLoader classLoader = JdbcUtils.class.getClassLoader();
            //此处返回的URL是统一资源定位符
            URL resource = classLoader.getResource("jdbc.properties");
            String path = resource.getPath();

            Properties prop = new Properties();
            prop.load(new FileReader(path));
            url = prop.getProperty("url");
            user = prop.getProperty("user");
            pwd = prop.getProperty("password");

总结

这两个模式的实现其实都是获取到了类加载器来加载资源,而类加载器的使用原理是这样的:当类加载请求到来时,先从缓存中查找该类对象,如果存在直接返回,如果不存在则交给该类加载去的父加载器去加载,倘若没有父加载则交给顶级启动类加载器去加载,最后倘若仍没有找到,则使用findClass()方法去加载(关于findClass()稍后会进一步介绍)。从loadClass实现也可以知道如果不想重新定义加载类的规则,也没有复杂的逻辑,只想在运行时加载自己指定的类,那么我们可以直接使用this.getClass().getClassLoder.getResource("className"),这样就可以直接调用ClassLoader的loadClass方法获取到class对象。

关于类加载器部分借鉴自深入理解类加载器

原网站

版权声明
本文为[凄戚]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_43621315/article/details/118489388

随机推荐