SpringBoot官方API知识点整合
1.系统要求
SpringBoot2.0.0RELEASE需要java8以上的版本以及Spring Framework5.0.4 RELEASE以上的版本,需要为MAVEN3.2+和Gradle4提供明确的构建支持。
2.Servlet容器
名称 | Servlet版本 |
---|---|
TomCat 8.5 | 3.1 |
jetty9.4 | 3.1 |
Undertow1.4 | 3.1 |
3.SpringBoot入门
3.1 第一个demo
在这里主要介绍使用idea进行开发
首先我们需要构建一个Spring Initializr项目,需要打开终端并运行一下命令,确保安装了JAVA和Maven的有效版本。
$ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
AND
$ mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_102, vendor: Oracle Corporation
创建Spring Boot项目我们需要有一个构建项目的配置文件——pom.xml,此文件是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 http://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.0.0.RELEASE</version>
</parent>
<!-- Additional lines to be added here... -->
</project>
在此之后可以通过 mvn package
语句来对Maven中相关依赖进行查看。
3.2 添加依赖
SpringBoot提供很多启动器,可以将jar添加到类的路径中。其中spring-boot-starter-parent
是一个提供有用的Maven默认值的特殊启动器,它还有一个dependency-management
部分,以便用户可以省略子模块的依赖关系的版本标签。
添加web依赖:
<dependency>
<dependency>
<groupId> org.springframework.boot </ groupId>
<artifactId> spring-boot-starter-web </ artifactId>
</ dependency>
</ dependencies>
当加入相关依赖后,再次执行mvn dependency: tree
会发现多了很多依赖的关系。
3.3 创建执行入口
为了将我们的项目运行起来,需要创建一个Java文件,在idea中会默认创建一个xxxApplication.java文件,里面会有执行的主方法。下面是执行文件的基本代码。
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Example.class, args);
}
}
其中最重要的是注解与主函数。
3.3.1 @RestController注解和@RequestMapping注解
我们application类的第一个注释是@RestController
。这被称为 stereotype annotation。它为阅读代码的人提供了线索,对于Spring来说,这个类扮演着特定的角色。在这种情况下,我们的类是一个Web @Controller
,所以Spring在处理传入的Web请求时会考虑这个类。
该@RequestMapping
注释提供“路由”的信息。它告诉Spring,任何带有/路径的HTTP请求都应映射到该home方法。该 @RestController
注释告诉Spring将结果字符串直接呈现给调用者。
在@RestController
与@RequestMapping
注解是Spring MVC的注解。(它们并不特定于Spring Boot。)
3.3.2 @EnableAutoConfiguration注解
第二个级别注释是@EnableAutoConfiguration
。这个注解告诉Spring Boot根据你添加的jar依赖来“猜测”你想要如何配置Spring。自从spring-boot-starter-web
添加了Tomcat和Spring MVC之后,自动配置假定您正在开发一个Web应用程序并据此设置Spring。
3.3.3 main方法
我们应用程序的最后一部分是该main方法。这只是一个遵循Java约定的应用程序入口点的标准方法。我们的主要方法SpringApplication
通过调用委托给Spring Boot的类run。 SpringApplication
引导我们的应用程序,从Spring开始,然后启动自动配置的Tomcat Web服务器。我们需要Example.class
将该run方法的参数作为参数传递,以确定SpringApplication哪些是主要的Spring组件。还传递了args数组以传递命令行参数。
3.4 运行示例
到此为止就构建了一个最简单的SpringBoot框架的web项目,你可以使用mvn spring-boot:run
来运行服务器,此时你将会在控制台上看见如下信息:
mvn spring-boot:run
. ____ _ __ _ _
/\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.0.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.222 seconds (JVM running for 6.514)
打开浏览器并输入localhost:8080
将会看到以下输出
hello world!