9

我已经编写了 AWS lambda 函数,我想从属性文件中读取数据库连接详细信息,并且在我的类路径中,但我无法加载该文件。这是我的代码:

InputStream input = DBConfiguartion.class.getResourceAsStream("appsettings");

        Reader r = new InputStreamReader(input, "UTF-8");
        Properties prop = new Properties();
        prop.load(r);

如果我通过普通的 java 控制台应用程序运行这段代码,那么它正在工作,但是每当我将它作为 AWS lambda 函数运行时, InputStream就会为空。

4

2 回答 2

9

你只差一个角色。这是一个工作示例,我必须做同样的事情:

InputStream is = DBConfiguartion.class.getResourceAsStream("/lambda.properties");
Properties properties = new Properties();
properties.load(is);

在构建部署 jar 时,这适用于以下 maven 文件结构:

  • 项目
  • 项目/src/main/java
  • 项目/src/main/java/com/something/DBConfiguation.java -
  • 项目/src/main/资源
  • 项目/src/main/resources/lambda.properties
于 2016-03-01T16:24:51.723 回答
2

当您要加载属性文件时,您可以使用ResourceBundle来加载属性。

String version = ResourceBundle.getBundle("lambda").getString("version");

它与加载文件不同InputStream,但这对我有用。在 Maven 项目中,文件需要位于:

  • 项目/src/main/resources/lambda.properties

我有一个简单的 Hello-World Lambda,它从github上的属性文件中读取当前版本。

于 2017-08-15T13:04:39.963 回答