参考文档: spring-boot/docs/2.7.5/reference/htmlsingle/#getting-started.first-application
环境要求
- Java(版本在8-19)
- Maven
查看java版本 java -version
查看maven版本 mvn -v
主要步骤
- 编写pom文件
- 空pom文件
- 引入 springboot parent 依赖
- 编写启动类
- spring boot应用注解
- 控制器注解
- main启动方法
- 应用运行
- 打包jar包
是的,太神奇了,只要创建两个文件,就可以启动一个最简单的springboot web 应用。让我们来逐步分析,需要了解在这个过程中。
编写pom.xml 文件
pom.xml 是 maven 构建项目的核心配置文件。我们首先在要给空目录中,编辑以下内容,保存命名为 pom.xml 文件。
<?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>
<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.5</version>
</parent>
<!-- Additional lines to be added here... -->
</project>
上述内容中,保留了最基础的内容。第一是pom文件的 xml 命名空间,第二,是当前项目的描述,groupId、组件名和版本号;第三,是本次依赖的 spring-boot 的父依赖,版本是 2.7.5。
此时,可以通过 mvn package 对项目进行打包,同时下载所需的各项依赖文件。
当然,此时项目是一个空项目。
通过 mvn dependency:tree 命令,可以看到项目的依赖结构。(此时为空)
⭐其中,spring-boot-starter-parent 通过 dependency-management 依赖管理 的特性,可以帮助我们在导入 springboot的生态组件时,而无需指定版本号。
💡此次demo的目标是构建一个 web 应用,所以还应该导入 web 相关的springboot依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
spring-boot-starter-web 中包含了 spring mvc 中的一些重要依赖。
此时,通过 mvn dependency:tree 可以看到项目中新的依赖结构。
编写应用代码
接下写唯一的一份代码。首先在项目目录下,创建 src/main/java 三个层级的目录,然后再创建 MyApplication.java 文件,完整的路径为 src/main/java/MyApplication.java ,内容如下。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@EnableAutoConfiguration
public class MyApplication {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
这份代码中,分三个部分来看,第一是 springboot 应用的功能开启,第二个部分是启动类的引导方法,第三部分是 spring mvc 的方法。
第一,@EnableAutoConfiguration 配置开启了 springboot 自动配置 的能力,可以根据根据用户导入的依赖,自行完成最低可运行的配置。
第二,@RestController 和 @RequestMapping("/") 是属于 spring mvc 的注释,前者标明这个类是一个 spring bean,同时配置所有控制器方法以字符串形式返回。后者配置特定请求路径的方法,是路径映射处理方法,这里对于根请求,将返回 hello world 字符串。
第三,main方法是一个启动方法,springboot可以通过启动类的入口方法,而无需通过 war 的方法部署运行。进一步,springboot 应用可以通过 jar 包的方式部署,因为其内置web服务器。
运行应用
通过以上两个文件,一个最小的springboot应用就完成了。接下来,我们可以通过以下方式启动。
第一,直接通过 main 方法启动。
第二,通过 mvn spring-boot:run 命令启动。
第三,借助 spring-boot-maven-plugin 插件,通过 mvn package 将 应用打包成可独立运行的 jar 包。依赖如下。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
第四,在pom文件中,设置打包方式为 war 包,然后部署到 web服务器中,这里不展开。
通过以上两个文件,我们实践了最简单的一个springboot 的web 应用,同时介绍了 springboot的依赖管理、自动配置和内置服务器的三个重要特性。
hhh,梳理了一下,感觉印象加深了呢!