Spring Boot 简化了基于 Spring 的应用开发。它为 Spring 和常用第三方库提供了默认配置,还可以直接使用内嵌服务器,通过 java -jar 启动一个 Web 应用。
先做一个最简单的 Hello World,熟悉一下项目结构和启动方式。本文使用 JDK 8、Maven 3.3.9、Spring Boot 1.5.4.RELEASE 和 IntelliJ IDEA。
可以先检查 Java 和 Maven 环境:
java -version
mvn -version创建 Maven 项目
创建一个普通 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
http://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>1.5.4.RELEASE</version>
</parent>
<groupId>com.example</groupId>
<artifactId>spring-boot-hello</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>spring-boot-starter-parent 提供了依赖和插件的默认管理,spring-boot-starter-web 则引入 Spring MVC、内嵌 Tomcat 等 Web 开发需要的依赖。执行下面的命令,可以查看最终引入了哪些依赖:
mvn dependency:treeStarter 的具体作用后面单独再说,这里先把项目跑起来。
编写启动类
创建 src/main/java/com/example/demo/Application.java:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}@SpringBootApplication 包含了 @Configuration、@EnableAutoConfiguration 和 @ComponentScan 的常用配置。启动类放在根包,下面的 web、service 等子包就会被自动扫描。
SpringApplication.run() 会创建 Spring 容器,并启动自动配置好的内嵌 Tomcat。
编写 Controller
在 com.example.demo.web 包下创建 HelloController:
package com.example.demo.web;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello World!";
}
}@RestController 表示方法返回值直接写入响应。这里访问 /hello 时,会返回一段简单文本。
运行项目
在项目目录执行:
mvn spring-boot:run启动日志中可以看到 Spring Boot 1.5.4.RELEASE 和内嵌 Tomcat。浏览器打开:
http://localhost:8080/hello页面输出:
Hello World!最后把项目打成可执行 Jar:
mvn package
java -jar target/spring-boot-hello-1.0-SNAPSHOT.jar再次访问 /hello,结果和使用 Maven 启动时一样。这个最小项目里没有写 Tomcat 配置,也没有单独声明 Spring MVC 的各项依赖,这正是 Spring Boot 自动配置和 Starter 带来的方便。
版本相关配置可以对照 Spring Boot 1.5.4 参考文档。