资讯专栏INFORMATION COLUMN

properties文件加载器

EscapedDog / 1666人阅读

import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

@Service
public class PropLoad {

    private static final Logger logger = LoggerFactory.getLogger(PropLoad.class);
    private static PropLoad instance = new PropLoad();
    private Properties props = new Properties();
    private PropLoad() {
    }
    
    public static synchronized String getProp(String key) {
        return instance.props.getProperty(key);
    }

    public static synchronized String getProp(String key, String defaultValue) {
        return instance.props.getProperty(key, defaultValue);
    }

    @PostConstruct
    public static void enter() {
        logger.debug("PropLoad init ...");
        instance.init();
        logger.debug("PropLoad init finish.");
    }

    private void init() {
        String path = "prop.properties";
        //InputStream in = ClassLoader.getSystemResourceAsStream(path);
        //为了解决在idea外,无法访问资源目录的问题
        InputStream in = this.getClass().getClassLoader().getResourceAsStream(path);
        if (in == null){
            logger.error("file path error,please check");
        }
        try {
            props.load(in);
        } catch (IOException e) {
            logger.error("load prop.properties error {}",e.getMessage());
        }finally {
            try {
                in.close();
            } catch (IOException e) {
                logger.error("InputStream close error");
            }
        }
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72143.html

相关文章

  • Java实现配置加载机制

    摘要:如何实现这样一个配置加载机制,让我们拥有这个机制后,不会让加载配置的代码散布得到处都是,并且可扩展,可管理。尾声本文提出的配置加载机制,并不能够实际帮忙加载配置,这事应该留给,,以及其他一些开源库如,去做。 前言 现如今几乎大多数Java应用,例如我们耳熟能详的tomcat, struts2, netty...等等数都数不过来的软件,要满足通用性,都会提供配置文件供使用者定制功能。 甚...

    zeyu 评论0 收藏0
  • 重拾-MyBatis-配置文件解析

    摘要:前言我们知道在使用时,我们需要通过去创建实例,譬如为的配置文件那么我们看下方法的具体实现创建实例并执行解析主要通过执行对配置文件的解析,具体实现如下文配置文件解析解析标签解析标签解析别名标签解析插件标签解析标签解析标签解析标签从的方法实现我 前言 我们知道在使用 Mybatis 时,我们需要通过 SqlSessionFactoryBuild 去创建 SqlSessionFactory ...

    王晗 评论0 收藏0
  • Spring Boot 参考指南(开发者工具)

    摘要:触发器文件可以手动更新,也可以使用插件进行更新。例如,要配置重新启动以始终使用触发器文件,你需要添加以下属性远程应用程序开发工具并不局限于本地开发,在远程运行应用程序时,还可以使用几个特性。 20. 开发者工具 Spring Boot包括一组额外的工具,这些工具可以使应用程序开发体验变得更加愉快,spring-boot-devtools模块可以包含在任何项目中,以提供额外的develo...

    APICloud 评论0 收藏0
  • springboot源码分析系列(三)--@EnableAutoConfiguration自动配置加

    摘要:常规的配置让开发人员将更多的经历耗费在了配置文件上。其中有三个注解,,。以前我们需要配置的东西,帮我们自动配置,告诉开启自动配置功能,这样自动配置才能生效。 为什么需要自动化配置   在常规的spring应用程序中,充斥着大量的配置文件,我们需要手动去配置这些文件,如配置组件扫描、视图解析器、http编码等等。常规的配置让开发人员将更多的经历耗费在了配置文件上。而这些配置都是一些固定模...

    Travis 评论0 收藏0
  • springboot源码分析系列(三)--@EnableAutoConfiguration自动配置加

    摘要:常规的配置让开发人员将更多的经历耗费在了配置文件上。其中有三个注解,,。以前我们需要配置的东西,帮我们自动配置,告诉开启自动配置功能,这样自动配置才能生效。 为什么需要自动化配置   在常规的spring应用程序中,充斥着大量的配置文件,我们需要手动去配置这些文件,如配置组件扫描、视图解析器、http编码等等。常规的配置让开发人员将更多的经历耗费在了配置文件上。而这些配置都是一些固定模...

    macg0406 评论0 收藏0

发表评论

0条评论

EscapedDog

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<