一、简介

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

二、Spring Boot 的主要优点:

  • 快速构建独立的Spring应用程序
  • 开箱即用,提供各种默认配置来简化项目配置
  • 内嵌式容器简化Web项目,嵌入TomcatGradle,无需部署WAR
  • 提供生产就绪功能,如指标,健康检查和外部配置
  • 简化MavenGradle配置
  • 没有冗余代码生成和XML配置的要求
  • 对主流开发框架和工具链做无配置集成

三、系统环境

  • Java 1.8.0_112
  • Spring Boot 1.5.4
  • IntelliJ IDEA 2017.1.3

四、快速构建项目

1. 使用SPRING INITIALIZR工具生成基础项目

1.1 打开浏览器:http://start.spring.io/

1.2 选择构建工具Maven ProjectJavaSpring Boot版本1.5.4以及填 写一下工程基本信息:
SPRING INITIALIZR

1.3 点击Generate Project下载项目压缩包

2. 使用IDEA将解压的项目包以Maven方式导入

2.1 解压刚才下载的项目压缩包

2.2 打开IDEA在菜单中选择File -> New -> Project from Existing Sources...

2.3 选择解压的项目文件夹,点击Opne

2.4 点击Import project from external model并选择Maven,点击Finish 到底为止。

五、基础项目结构解析

基础项目结构

通过上述步骤构建了基础项目,如上图所示:

  • src/main/java下的程序入口:SpringBootDemoApplication
  • src/main/resources下的配置文件:application.properties
  • src/test/下的测试入口:SpringBootDemoApplicationTests

生成的SpringBootDemoApplicationSpringBootDemoApplicationTests类都可以直接运行来启动当前创建的项目,由于目前该项目未配合任何数据访问或Web模块,程序会在加载完Spring之后结束运行。

六、引入Web模块

当前的pom.xml内容如下,仅引入了两个模块:

  • spring-boot-starter:核心模块,包括自动配置支持、日志和YAML
  • spring-boot-starter-test:测试模块,包括JUnitHamcrestMockito
1
2
3
4
5
6
7
8
9
10
11
12
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

引入Web模块,需添加spring-boot-starter-web模块:

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

## 七、编写Hello World服务 * 创建`package`命名为`net.developerly.web`(根据实际情况修改) * 创建`ExampleController`类,内容如下
1
2
3
4
5
6
public class ExampleController {
@RequestMapping("/hello")
public String index() {
return "Hello World";
}
}
  • 启动主程序,打开浏览器访问http://localhost:8080/hello,可以看到页面输出Hello World