繁体   English   中英

Spring 引导类路径

[英]Spring Boot classpath

此处的 Spring 引导文档中,关于提供 static 内容,它说:

默认情况下 Spring 引导将提供来自 classpath 中名为 /static (或 /public 或 /resources 或 /META-INF/resources )目录的static内容。

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

src/main/resources

将被复制到类路径中,所以我可以将我的 static 内容放在:

src/main/resources/static

一切都会正常工作,我很高兴,因为我可以在src目录下拥有我的 static 内容。

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

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

/src/main/resourcesMaven项目结构约定。 它是项目中放置资源的路径。 在构建步骤中,Maven 会将文件放入其中并将它们放置在适当的位置,以便您在运行时类路径中使用它们,例如在可执行文件.jar ,类路径中使用的某些物理文件系统位置(带有java-cp选项)等。

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

Spring boot 文档讨论了类路径,因为它不应该对您的项目是如何设置的做出假设。

类路径还包含额外的库 (JAR),它也可以有一个static文件夹,然后将包含该文件夹以提供静态资源。 因此,如果文档只说明文件夹src/main/resources/static ,那将是不完整的。

广告 2:只要您不弄乱默认的 Maven 配置,就可以安全地假设这一点。

广告 3:也许从官方 Oracle 文档开始: https : //docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html 提示:当然,不仅是classpath中的resources文件夹的内容,当然还有所有编译好的类,因此得名。

To add to previous answers, it's the Spring Boot Maven Plugin (spring-boot-maven-plugin in the pom.xml ) that that enables you to run the application using Maven. 它的功能之一是确保应用程序中的内容(包括依赖库)在运行时类路径中可用,例如在可执行 JAR 文件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM