java - Spring Boot 类路径

标签 java spring-mvc spring-boot classpath

Spring Boot's docs here ,关于提供静态内容,它说:

By default Spring Boot will serve static content from a directory called /static (or /public or /resources or /META-INF/resources) in the classpath.

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

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/找到所有内容)?

最佳答案

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

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

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

关于java - Spring Boot 类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34160419/

相关文章:

java - @Value注解不起作用

java - Angular 如何知道要调用哪个 Spring Boot REST API?

java - 如何使用java将webelement转换为selenium中的字符串?请参阅详细信息部分以获取更多信息

java - 领域模型和实体模型是否相同

spring-boot - 为单元测试禁用 servlet 过滤器

java - 部署和连接云类型转换服务(MongoDB、Java、Spring Boot)

spring - 发出 POST 请求时如何不转义 Spring RestTemplate 中的表单正文字符?

Java 循环中的异步休息调用

java - 如何仅在 maven-jarsigner-plugin 发布时配置 TSA 参数

java - JSP 正在下载而不是渲染