欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Spring 加载项目外部配置文件,

来源: javaer 分享于  点击 13346 次 点评:65

Spring 加载项目外部配置文件,


背景

在项目的部署过程中,一般是打成 war 或者 jar 包,这样一般存在两种问题:

针对上面的问题,可以使用外部化配置来解决。

需求

由于服务器上的应用服务器存放路径未知,只知应用服务器的目录结构。所以需要通过文件的相对路径,实现外部化配置。

环境

方案

File

不建议使用 File 的相对路径来获取,因为以下两点:

Class

可以使用 getClass().getResource 或者 getClass().getResourceAsStream 来获取,可以获取到 jar 包中的文件。

ClassLoader

ClassLoader 和 Class 类似,区别是 ClassLoader 以“/”开头返回null,并且相对路径是获取 classpath 下的文件。

实现

最终选择使用 ClassLoader 来实现较为简单,部分实现。

InputStream is = getClass().getClassLoader().getResourceAsStream(EXTERNAL_CONFIG_FILE);

if (is == null) {
    logger.info("外部配置不存在。");
}
try {

    ResourcePropertySource source = new ResourcePropertySource(new InputStreamResource(is));
    // 外部配置优先级最高
    beanFactory.getBean(StandardEnvironment.class).getPropertySources().addFirst(source);

} catch (IOException e) {

    logger.error("获取外部配置失败。", e);
}

相关文章

    暂无相关文章
相关栏目:

用户点评