Spring boot 项目目录结构

1、IDEA中目录结构:

在这里插入图片描述

2、编译后项目目录:

在这里插入图片描述

  • META-INF
  • WEB-INF
    • classes
      • com.xu.common
      • resources
      • static
      • application.yml
    • lib
    • index.html
    • web.xml
  • WEB-INF2
  • wstatic
  • index.html

3、IDEA和编译后目录对比图:

在这里插入图片描述

4、目录对照解释说明(个人理解):

1、项目编译时会查找项目中main/webapp目录,然后将webapp目录下所有文件和文件夹全量拷贝到编译后项目根目录下,如果找不到该目录,只默认创建META-INF和WEB-INF2个目录
2、main/java目录下java文件编译成class文件,放到WEB-INF/classes目录
3、main/resources目录文件全量拷贝到WEB-INF/classes目录
4、项目引入的第三方jar包,全量拷贝到WEB-INF/lib目录下
5、除maven打包特殊指定外,其他位置的文件,一律丢弃

5、各层级文件夹指定(以编译后的项目文件夹来描述):

1、配置文件
比如application.yml文件
classpath:/static表示/WEB-INF/classes/static
classpath:/resources表示/WEB-INF/classes/resources
2、java代码访问

3、静态文件访问

6、部署到Tomcat后浏览器访问方式

在这里插入图片描述

1、非WEB-INF目录外文件可以直接访问
部署到Tomcat可以直接浏览器访问,但是IDEA直接启动的spring boot服务是不能访问的
2、WEB-INF目录下文件需要做静态配置
application.yml中增加如下配置:
spring:
resources:
static-locations: classpath:/static,classpath:/resources
spring.resources.static-locations 的默认值是:classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
也就是说,如果是如上4个文件夹内的静态资源,不用到application.yml中配置也可以访问

7、其他小知识

classpath 和 classpath* 区别:
classpath:只会到你的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.

Spring Boot 项目目录结构通常遵循标准的 Maven 或 Gradle 项目结构。下面是一个常见的 Spring Boot 项目目录结构示例: ``` ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── example │ │ │ └── myproject │ │ │ ├── controller │ │ │ ├── model │ │ │ ├── repository │ │ │ ├── service │ │ │ ├── exception │ │ │ └── MyProjectApplication.java │ │ ├── resources │ │ │ ├── application.properties │ │ │ ├── static │ │ │ └── templates │ │ └── webapp (可选) │ ├── test │ │ └── java │ │ └── com │ │ └── example │ │ └── myproject │ │ └── MyProjectApplicationTests.java │ └── target (自动生成,项目构建后生成) ├── pom.xml (Maven 项目的配置文件) └── build.gradle (Gradle 项目的配置文件) ``` 在这个目录结构中,主要的文件和目录包括: - `src/main/java`:存放主要的 Java 代码,包括控制器 (`controller`)、模型 (`model`)、持久层 (`repository`)、服务 (`service`)、异常处理 (`exception`) 等等。 - `src/main/resources`:存放主要的资源文件,如配置文件 (`application.properties`)、静态资源文件 (`static`)、模板文件 (`templates`) 等等。 - `src/main/webapp`:如果你的项目需要使用传统的 Web 应用的目录结构,可以将静态资源和 JSP 文件放到这个目录中。 - `src/test/java`:存放测试代码,通常与 `src/main/java` 目录结构类似,用于编写单元测试和集成测试。 - `pom.xml`:Maven 项目的配置文件,定义了项目的依赖和构建配置。 - `build.gradle`:Gradle 项目的配置文件,定义了项目的依赖和构建配置。 - `target`:在项目构建后自动生成的目录,包含了编译后的代码和构建产物。 这只是一个示例的目录结构,实际的项目可能会根据需求和团队约定进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值