一尘不染

Spring Boot类路径

spring-boot

Spring Boot的文档中,有关提供静态内容,它说:

默认情况下,Spring Boot将从 类路径中 名为/ static(或/ public或/ resources或/ META-INF /
resources)的目录中提供静态内容。

我发现目录中的所有内容:

src/main/resources

将被复制到 classpath中 ,因此我可以将静态内容放入:

src/main/resources/static

一切正常,我很高兴,因为我可以将静态内容放在src目录下。

但是,我对此有一些疑问:

  1. 为什么文档中没有说要放入静态内容src/main/resources/static而不是谈论类路径(我认为这有点令人困惑)?
  2. 假设其中的内容src/main/resources/将始终复制在类路径中,是否很好?
  3. 是否有一些Spring Boot官方文档解释了我应该在除Java类和包之外的类路径中找到的内容(到目前为止,我只知道可以从中找到所有内容src/main/resources/)?

阅读 390

收藏
2020-05-30

共1个答案

一尘不染

/src/main/resourcesMaven项目结构约定。这是项目内部放置资源的路径。在构建步骤,Maven将采取文件在那里,并放置在合适的地方让你在运行时类路径,例如,在一个可执行文件中使用它们.jar,在类路径中使用的一些物理文件系统位置(使用java-cp选项)等。

我可以选择自己构建应用程序或使用其他构建工具。在这种情况下,/src/main/resources将不存在。但是,目的是使类路径相同。包含相同的资源和.class文件。

Spring引导文档讨论了类路径,因为它不应对项目的设置方式做任何假设。

2020-05-30