对于一个空的Spring Boot项目来说,它会在项目创建的过程中自动生成4个文件,分别是pom.xml、DemoApplication.java、DemoApplicationTest.java和application.properties。其中以Demo开头的原因是我们在创建项目时对Artifact命名为Demo。
pom.xml:Maven构建说明文件
DemoApplication.java:一个带有main()方法的类,用于启动应用程序,挺关键的一个文件
DemoApplicationTests.java:一个空的Junit测试类,它加载了一个使用Spring Boot字典配置功能的Spring应用程序上下文
application.properties:一个空的properties文件。在实际开发中,可以根据实际需要添加配置属性

pom.xml
pom.xml是Spring Boot项目中相当重要的一个文件,它是maven的构建说明文件,里面有着maven的各种配置以及项目的各种依赖等。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Spring Boot父级依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
在pom.xml中,这块配置就是Spring Boot的父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。
起步依赖spring-boot-starter-xx
Spring Boot提供了很多“开箱即用”的依赖模块,都是以spring-boot-starter开头来命名的。这个其实已经自动封装好了我们想要的功能依赖,比如我们创建项目时选择了web依赖,那么此时我们只需要引入spring-boot-starter-web依赖即可。
Spring Boot通过提供众多起步依赖来降低项目依赖的复杂度。起步依赖本质上是一个 Maven 项目对象模型 (Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。很多起步依赖的命名都暗示了它们提供的某种或者某类功能。比如我们这个springBootDemo项目中使用到的spring-boot-starter-web依赖。
Spring Boot Maven插件
在pom.xml文件中,有关于Maven插件的代码
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
这个配置块就是Spring Boot Maven插件,Spring Boot Maven插件提供了许多用起来很方便的功能。如能够把项目打包成一个可执行的超级JAR(uber-JAR),包括把应用程序的所有依赖打入JAR文件内,并为JAR文件添加一个描述文件,其中的内容能让我们使用java -jar命令来运行应用程序。
本文详细解析了SpringBoot项目的基本结构,介绍了四个核心文件的作用:pom.xml作为Maven构建说明文件,管理项目依赖;DemoApplication.java用于启动应用程序;DemoApplicationTests.java提供Junit测试;application.properties用于配置属性。此外,还深入探讨了SpringBoot父级依赖、起步依赖和Maven插件的作用。

183

被折叠的 条评论
为什么被折叠?



