Spring Boot 项目结构介绍_java

POM文件

<!-- 父工程 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.7</version>
</parent>

Spring Boot 的父级依赖,只有继承它项目才是 Spring Boot 项目。 spring-boot-starter-parent 是一个特殊的 starter,它用来提供相关的 Maven 默认依赖。使 用它之后,常用的包依赖可以省去 version 标签。

依赖

<!-- 起步依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
</dependencies>

插件

<!-- 插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

spring-boot-maven-plugin 插件是将 springboot 的应用程序打包成 jar 包的插件。将所有 应用启动运行所需要的 jar 包都包含进来,从逻辑上将具备了独立运行的条件。当运行"mvn package"进行打包后,使用"java -jar"命令就可以直接运行。

启动类

Spring Boot 的启动类的作用是启动 Spring Boot 项目,是基于 Main 方法来运行的。 注意:启动类在启动时会做注解扫描(@Controller、@Service、@Repository…),扫描 位置为同包或者子包下的注解,所以启动类的位置应放于包的根下。

启动类与启动器区别

  • 启动类表示项目的启动入口
  • 启动器表示 jar 包的坐标

创建启动类

@Slf4j
@SpringBootApplication
public class ApplicationMain {
public static void main(String[] args) {
SpringApplication.run(ApplicationMain.class,args);
log.info("项目启动成功");
}
}

启动器

Spring Boot 将所有的功能场景都抽取出来,做成一个个的 starter(启动器),只需要在项 目里面引入这些 starter 相关场景的所有依赖都会导入进来,要用什么功能就导入什么场景, 在 jar 包管理上非常方便,最终实现一站式开发。

Spring Boot 提供了多达 44 个启动器。

spring-boot-starter:这是 Spring Boot 的核心启动器,包含了自动配置、日志和 YAML。

spring-boot-starter-actuator:帮助监控和管理应用。

spring-boot-starter-web:支持全栈式 Web 开发,包括 Tomcat 和 spring-webmvc。

spring-boot-starter-amqp:通过 spring-rabbit 来支持 AMQP 协议(Advanced Message Queuing Protocol)。

spring-boot-starter-aop:支持面向方面的编程即 AOP,包括 spring-aop 和 AspectJ。

配置文件

Spring Boot 提供一个名称为 application 的全局配置文件,支持两种格式 properteis 格式 与 YAML 格式

配置文件存放位置

  • 当前项目根目录中
  • 当前项目根目录下的一个/config 子目录中
  • 项目的 resources 即 classpath 根路径中
  • 项目的 resources 即 classpath 根路径下的/config 目录中