spring引导类路径

bogh5gae  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(248)

在SpringBoot的文档中,关于服务静态内容,它说:
默认情况下,spring引导将提供来自类路径中名为/static(或/public或/resources或/meta-inf/resources)的目录的静态内容。
我发现目录中的所有内容:

src/main/resources

将被复制到类路径中,以便我可以将静态内容放入:

src/main/resources/static

一切都会很好,我很高兴,因为我可以有我的静态内容下 src 目录。
但是,我有一些问题:
为什么文档没有说要将静态内容放入 src/main/resources/static 而不是谈论类路径(我认为这有点混乱)?
假设 src/main/resources/ 是否总是在类路径中复制?
有没有一些springboot官方文档来解释除了java类和包之外,我应该在类路径中找到什么(到目前为止,我只知道我可以从中找到所有的内容 src/main/resources/ )?

ftf50wuq

ftf50wuq1#

/src/main/resources 是maven项目结构约定。它是项目中放置资源的路径。在构建步骤中,maven将把文件放在适当的位置,以便您在运行时类路径中使用它们,例如在可执行文件中 .jar ,类路径中使用的一些物理文件系统位置(使用 java-cp 选项)等。
我可以选择自己构建应用程序,也可以选择使用其他构建工具。在这种情况下, /src/main/resources 不会存在。但是,目的是使类路径相同,即包含相同的资源和 .class 文件夹。
spring引导文档讨论类路径,因为它不应该假设项目是如何设置的。

szqfcxe2

szqfcxe22#

类路径还包含其他库(jar),这些库也可以具有 static 文件夹,然后将包含该文件夹以提供静态资源。所以如果文档只说明文件夹 src/main/resources/static ,这将是不完整的。
广告2:只要你不弄乱默认的maven配置,那么可以肯定的是。
广告3:也许从甲骨文的官方文档开始:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html. 提示:当然,不仅仅是类路径中的resources文件夹的内容,当然还有所有编译过的类,因此得名。

相关问题