当 Web 应用程序在 Maven 驱动的 Vaadin 14 Web 应用程序中启动时,我的 Java 代码加载的数据或配置文件放在哪里
Where to put data or config files loaded by my Java code when web app launches in a Vaadin 14 web app driven by Maven
在由 Vaadin Starter page 的 "Plain Java Servlet" 风格创建的 Vaadin 14 网络应用程序项目中,有许多文件夹由 Maven POM 文件进程自动创建。
在我的 Web 应用程序启动时我将加载和解析的数据文件或配置文件放在哪里?我的文件放在什么文件夹下?我应该创建更多的嵌套文件夹吗?我通过什么文件路径名找到并加载这样一个文本(XML、JSON、CSV 等)文件?
文件位置
您将它们放在 src/main/resources
中,因为它也是 Vaadin 应用程序之外的惯例。
Vaadin 添加了其他几个资源根,用于稍后在 jar 中的位置,vaadin 可以方便地找到它们(例如在 META-INF/resources/...
下)。
resources
仍然在 jar 的根目录中或通过构建工具正确地 "classpathed" 并且可以安全地通过应用程序中的类加载器加载非 类 .
正在打开文件
您可以通过调用 Class::getResourceAsStream
, returning an InputStream
从那里打开您的文本文件。请注意前导斜线字符。
InputStream inputStream = this.getClass().getResourceAsStream( "/myfile.txt" ) ;
在由 Vaadin Starter page 的 "Plain Java Servlet" 风格创建的 Vaadin 14 网络应用程序项目中,有许多文件夹由 Maven POM 文件进程自动创建。
在我的 Web 应用程序启动时我将加载和解析的数据文件或配置文件放在哪里?我的文件放在什么文件夹下?我应该创建更多的嵌套文件夹吗?我通过什么文件路径名找到并加载这样一个文本(XML、JSON、CSV 等)文件?
文件位置
您将它们放在 src/main/resources
中,因为它也是 Vaadin 应用程序之外的惯例。
Vaadin 添加了其他几个资源根,用于稍后在 jar 中的位置,vaadin 可以方便地找到它们(例如在 META-INF/resources/...
下)。
resources
仍然在 jar 的根目录中或通过构建工具正确地 "classpathed" 并且可以安全地通过应用程序中的类加载器加载非 类 .
正在打开文件
您可以通过调用 Class::getResourceAsStream
, returning an InputStream
从那里打开您的文本文件。请注意前导斜线字符。
InputStream inputStream = this.getClass().getResourceAsStream( "/myfile.txt" ) ;