当 Web 应用程序在由 Maven 驱动的 Vaadin 14 Web 应用程序中启动时,将我的 Java 代码加载的数据或配置文件放在哪里

Bas*_*que 3 directory servlets vaadin vaadin-flow

Vaadin Starter 页面的“Plain Java Servlet”风格创建的 Vaadin 14 Web 应用程序项目中,有许多由 Maven POM 文件进程自动创建的文件夹。

显示嵌套在项目中的文件夹的 IntelliJ“项目”窗格的屏幕截图

我将在 Web 应用程序启动时加载和解析的数据文件或配置文件放在哪里?我将文件放在哪个文件夹下?我应该创建更多的嵌套文件夹吗?我通过什么文件路径名找到并加载这样的文本(XML、JSON、CSV 等)文件?

cfr*_*ick 6

文件位置

您将它们放入,src/main/resources因为它也是 Vaadin 应用程序之外的约定。

Vaadin 为后来最终出现在 jar 中的地方添加了几个其他资源根,vaadin 可以方便地找到(例如在 下META-INF/resources/...)。

resources 仍然最终在 jar 的根目录中,或者被构建工具正确地“类路径化”,并且可以安全地通过应用程序中的类加载器加载非类。

打开文件

您可以通过调用从那里打开您的文本文件Class::getResourceAsStream,返回一个InputStream. 请注意前导斜杠字符。

InputStream inputStream = this.getClass().getResourceAsStream( "/myfile.txt" ) ;
Run Code Online (Sandbox Code Playgroud)