gpt4 book ai didi

java - AWS Lambda Java 如何读取属性文件

转载 作者:行者123 更新时间:2023-11-30 07:52:35 24 4
gpt4 key购买 nike

我尝试从文件中将属性加载到 Properties 类中。我希望这个解决方案有效:How to load property file from classpath in AWS lambda java

我有一个几乎没有静态方法的类,我想将它用作配置持有者。里面有这一行

final InputStream inputStream = 
Config.class.getClass().getResourceAsStream("/application-main.properties");

它总是返回空值。我下载了 Lambda 正在使用的 zip 包,该文件位于根目录中。仍然不起作用。

有人遇到过类似的问题吗?

编辑:配置文件在这里:

project
└───src
│ └───main
│ └───resources
│ application-main.properties

编辑:我的“临时”解决方法如下所示:

// LOAD PROPS FROM CLASSPATH...
try (InputStream is = Config.class.getResourceAsStream(fileName)) {
PROPS.load(is);
} catch (IOException|NullPointerException exc) {
// ...OR FROM FILESYSTEM
File file = new File(fileName);
try (InputStream is = new FileInputStream(file)) {
PROPS.load(is);
} catch (IOException exc2) {
throw new RuntimeException("Could not read properties file.");
}
}

在测试期间,它从类路径读取,在 AWS Lambda 运行时部署后,它使用文件系统。为了识别我使用环境变量的文件:

fileName = System.getenv("LAMBDA_TASK_ROOT")  + "/application-main.properties";

但我宁愿只使用类路径而不解决这个问题。

最佳答案

假设 src/main/resources/config.properties

File file = new File(classLoader.getResource("resources/config.properties").getFile());
FileInputStream fileInput = new FileInputStream(file);
prop.load(fileInput);

关于java - AWS Lambda Java 如何读取属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45677854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com