[英]Spring Boot classpath
在此处的 Spring 引导文档中,关于提供 static 内容,它说:
默认情况下 Spring 引导将提供来自 classpath 中名为 /static (或 /public 或 /resources 或 /META-INF/resources )目录的static内容。
我发现目录中的所有内容:
src/main/resources
将被复制到类路径中,所以我可以将我的 static 内容放在:
src/main/resources/static
一切都会正常工作,我很高兴,因为我可以在src
目录下拥有我的 static 内容。
但是,我对此有一些疑问:
src/main/resources/static
中而不是谈论类路径(我认为这有点令人困惑)?src/main/resources/
中的内容将始终复制到类路径中是否很好?src/main/resources/
找到所有内容)? /src/main/resources
是Maven项目结构约定。 它是项目中放置资源的路径。 在构建步骤中,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.