Springboot 默认路径说明

本文阐述SpringBoot如何通过消除样板配置,优化资源访问路径,如static、public、resources和/META-INF/resources的使用方法。

Spring Boot基本上是Spring框架的扩展,它消除了设置Spring应用程序所需的样板配置,极大的方便了开发者,其默认识别路径如下:

Spring Boot 作为Spring默认将 /** 所有访问映射到以下目录:
1、classpath:/static

        用于加载静态资源,比如CSS、JavaScript、图片等。在Spring Boot中,将静态资源文件放在该目录下,然后通过访问“/文件名”来访问这些静态资源文件。

例:在resources目录下创建了一个static目录,并在其中创建了一个test.js文件。通过“/test.js”路径来访问这个文件

2、classpath:/public

        用于加载公共资源,比如favicon.ico等。在Spring Boot中,将公共资源文件放在该目录下,然后通过访问“/文件名”来访问这些公共资源文件。

例:在resources目录下创建了一个public目录,并在其中创建了一个favicon.ico文件。通过访问“/favicon.ico”来访问这个文件。

3、classpath:/resources      

        用于加载resources目录下的资源,通常用于存放应用程序的配置文件、模板文件等。在Spring Boot中,将资源文件放在该目录下,然后通过访问“/文件名”来访问这些资源文件。

例:在resources目录下创建了一个test.txt文件,通过访问“/test.txt”来访问这个文件。

4、classpath:/META-INF/resources

        用于加载META-INF/resources目录下的资源,通常用于存放JAR包中的资源文件,比如Spring Boot自动配置的文件。在Spring Boot中,将资源文件放在该目录下,然后通过访问“/META-INF/resources/文件名”来访问这些资源文件。

例:在resources目录下创建了一个META-INF/resources目录,并在其中创建了一个test.txt文件。通过访问“/META-INF/resources/test.txt”来访问这个文件。

5、/(根目录)

        用于加载根目录下的资源,比如动态生成的HTML页面等。在Spring Boot中,将动态页面放在该目录下,通过访问“/文件名”来访问这些动态页面。

例:在根目录下创建了一个index.html文件,通过访问“/index.html”来访问这个文件。

<think>我们正在讨论Spring Boot打包时如何确定包含自己代码的路径。根据Spring Boot的打包结构,用户代码通常位于BOOT-INF/classes目录下。 引用[5]提到:可执行jar包的结构中,BOOT-INF/classes目录下存放的是应用编译后的class文件和资源文件(即用户自己的代码和配置文件)。 因此,在Spring Boot打包的jar文件中,用户自己的代码和资源文件位于BOOT-INF/classes目录下。 另外,引用[2]和[4]提到了配置文件的分离和外部指定,但用户的问题是关于自己代码的路径,所以我们主要关注打包结构。 回答如下: 在Spring Boot打包生成的fat jar(可执行jar)中,用户自己的代码(包括编译后的class文件和资源文件)位于jar包内的`BOOT-INF/classes/`目录下。 我们可以通过以下步骤验证: 1. 使用`jar tvf your-application.jar`命令查看jar包内容。 2. 在输出中,可以看到类似如下的路径: BOOT-INF/classes/com/yourcompany/yourapp/YourClass.class BOOT-INF/classes/application.properties 因此,用户代码的路径在jar包内是固定的:`BOOT-INF/classes/`。 此外,如果用户想要在打包时分离自己的代码(比如将配置文件放在外部),可以通过配置spring-boot-maven-plugin来实现,但这不是本问题的重点。 相关问题: 1. Spring Boot的可执行jar包结构是怎样的? 2. 如何从Spring Boot的fat jar中提取用户代码? 3. 在Spring Boot打包时,如何将配置文件排除在jar包之外? 4. Spring Boot如何加载位于jar包内部的资源文件? 5. 如何查看Spring Boot生成的jar包内容?</think>在 Spring Boot 打包过程中,用户代码的包含路径由 Maven/Gradle 构建工具根据标准项目结构自动确定。以下是关键路径规则: ### 1. **默认源代码路径** 用户代码主要来自以下两个标准目录: - **Java 源代码**:`src/main/java` 目录下的所有 `.java` 文件 - **资源文件**:`src/main/resources` 目录下的配置文件、静态资源等 编译后,这些内容会被打包到 jar 文件内的 `BOOT-INF/classes/` 目录中[^5]。 ### 2. **打包后结构验证 可通过命令查看 jar 包内容: ```bash jar tf your-application.jar | grep BOOT-INF/classes ``` 输出示例: ``` BOOT-INF/classes/com/yourpackage/ BOOT-INF/classes/application.yml ``` ### 3. **自定义路径配置 若需修改默认路径,可在构建文件中配置: ```xml <!-- Maven 示例 --> <build> <resources> <resource> <directory>custom/resource/path</directory> <!-- 自定义资源路径 --> </resource> </resources> <sourceDirectory>custom/java/path</sourceDirectory> <!-- 自定义源码路径 --> </build> ``` ### 4. **优先级说明 Spring Boot 加载资源时按以下顺序[^2][^4]: 1. Jar 包同级 `/config` 目录 2. Jar 包同级目录 3. `BOOT-INF/classes/config`(打包内的配置) 4. `BOOT-INF/classes`(用户代码和默认配置) > ⚠️ 注意:外部目录配置会覆盖 jar 包内部文件,但不影响打包时用户代码的包含路径[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

magic33416563

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值