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

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);

}

http://www.dengb.com/Javabc/1382447.htmlwww.dengb.comtruehttp://www.dengb.com/Javabc/1382447.htmlTechArticleSpring 加载项目外部配置文件, 背景 在项目的部署过程中,一般是打成 war 或者 jar 包,这样一般存在两种问题: 针对上面的问题,可以使...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值