快速搭建一个SpringBoot的"Hello World"应用
1. Spring Boot 简介
Spring Boot使创建可运行的独立,生产级基于Spring的应用程序变得容易。我们对Spring平台和第三方库持固执己见的观点,这样您就可以以最小的麻烦开始使用。大多数Spring Boot应用程序只需要很少的Spring配置。
您可以使用Spring Boot创建可以通过使用java -jar或更传统的war部署启动的Java应用程序。我们还提供了一个运行“ spring scripts”的命令行工具。
我们的主要目标是:
- 为所有Spring开发提供根本上更快且可广泛访问的入门体验。
- 开箱即用,但由于需求开始与默认值有所出入,因此很快就会摆脱困境。
- 提供一系列大型项目通用的非功能性功能(例如嵌入式服务器,安全性,指标,运行状况检查和外部化配置)。
- 完全没有代码生成,也不需要XML配置。
2. 系统要求
Spring Boot 2.2.1.RELEASE需要Java 8,并且与Java 13(包括)兼容。还需要Spring Framework 5.2.1.RELEASE或更高版本。
为以下构建工具提供了明确的构建支持:
Build Tool | Version |
---|---|
Maven | 3.3+ |
Gradle | 5.x (还支持4.10,但已弃用) |
2.1. Servlet 容器
Spring Boot 2.2.1.RELEASE支持以下嵌入式servlet容器:
Name | Servlet Version |
---|---|
Jetty 9.4 | 3.1 |
Undertow 2.0 | 4.0 |
3. 开发您的第一个Spring Boot应用程序
在开始之前,请打开命令行窗口并运行以下命令,以确保安装了有效的Java和Maven版本:
$ java -version
java version “1.8.0_102”
Java™ SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot™ 64-Bit Server VM (build 25.102-b14, mixed mode)
$ mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T14:33:14-04:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_102, vendor: Oracle Corporation
3.1 通过编辑器基于Maven新建一个Spring-boot项目
-
打开IDEA(也可以是其他编辑器)点击Create New Project新建项目:
-
选择Spring Initializr Project SDK选择1.8,点击next下一步:
-
填写好项目的Group(这个一般都是项目的包结构)和Artifact(这个一般都是项目的名称)就可以点击下一步了
-
项目依赖的勾选,可以默认点击下一步:
-
确认项目的存放目录,项目基本搭建完成:
项目的最终目录结构:
3.2 编辑Pom.xml文件添加spring-boot-starter-web依赖
添加spring-boot-starter-web依赖之前可以在项目的根目录下执行mvn dependency:tree命令,可以看到该项目依赖了哪些jar包.
添加spring-boot-starter-web依赖
再次执行mvn dependency:tree命令,你会发现比没有引入web依赖之前多了一些web相关的jar包,tomcat之类的
3.3 编写一个见到controller类
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;
/**
1. @description
2. @AUTHOR yangzhiguo
3. @DATE 2019/12/1
*/
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "hello world";
}
public static void main(String[] args) {
SpringApplication.run(Example.class, args);
}
}
启动应用程序的方式:
- 通过命令窗口执行 mvn spring-boot:run启动:
$ mvn spring-boot:run
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.1.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.222 seconds (JVM running for 6.514)
启动完成后再浏览器输入localhost:8080可以看到“hello,world”的输入
- 通过把命令mvn package把项目打包成jar包再通过jar -jar xxx.jar的命令启动应用程序:
想要把项目打包成jar还的引入一个maven的plugin插件才可以打包,在pom.xml中引入:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
引入完成后执行 mvn package命令完成后可以在项目目录中看到生成一个target目录,在目录中会存在两个jar文件xxx.jar和xxx.jar.original,两个都是打包生成的,后面original这个是xxx.jar打包生成之前的副本.
$ mvn package
[INFO] Scanning for projects…
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building myproject 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] … …
[INFO] — maven-jar-plugin:2.4:jar (default-jar) @ myproject —
[INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] — spring-boot-maven-plugin:2.2.1.RELEASE:repackage (default) @ myproject —
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
执行命令$ jar tvf target/xxx-0.0.1-SNAPSHOT.jar可以看到应用启动成功标识:
$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar
至此一个spring-boot的‘hello world’已经完成。