一、快速构建Spring Boot项目
1. 简单介绍
简单来说,Spring Boot 给我们提供了一种快速使用Spring的方式。其设计目的就是用来简化Spring应用的搭建和开发过程。它采用‘约定优于配置’的理念,使我们很容易搭建起来一个能够独立运行的、准生产级别的基于Spring框架的应用。它有如下几处优点:
- 有大量的自动配置,能够简化开发,也可修改配置默认值
- 无需配置XML,无代码生成,开箱即用
- 使用嵌入式的Servlet容器
- 能够快速的创建Spring项目以及与主流框架集成
- … …
2. 快速创建Spring Boot项目
环境约束
- JDK1.8。(JDK1.7以上即可)
- Maven3.X
本实例采用IDEA开发,基于2.0.4版本的Spring Boot
快速构建
首先基于Spring Initializr工具产生基础项目,SDK选择自己配置的JDK1.7以上版本
接下来输入自己项目的Group以及Artifact:
接着选择Spring Boot版本,我选择的是2.0.4版本的:
之后填入项目名称以及选择项目地址:
最后IDEA自动生成如下结构的Spring Boot初始项目:
3. 引入Web模块
为了有更直观的测试效果,我们引入Web模块,写一个Controller文件。
首先看一下最初的pom文件:
<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>
它只引入两个模块:
- spring-boot-starter:这是Spring项目的核心模块,提供各种自动化配置以及日志等等
- spring-boot-starter-test:这是测试模块
接下来我们在其中 添加上Web模块:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
我们在引入模块的时候,可以不指定版本号,因为它会根据parent配置继承版本号。
4. 编写HelloWorld
package com.baiding.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author: BaiDing
* @Date: 2018/9/6 18:14
* @Email: [email protected]
*/
@RestController
public class HelloController {
@RequestMapping("/hello")
public String Hello(){
return "Hello World!";
}
}
至此,我们的一个简单的基于Spring Boot的Hello World程序就创建完毕。
5. 测试
上面我们说了,Spring Boot的一大优势就是使用了嵌入式的Servlet容器,所以我们 不用纠结怎么去配置Tomcat这些东西。要启动程序的话,只需要执行 SpringBootHelloworldApplication 中的main方法,待程序
完全启动之后,可以再浏览器访问:http://localhost:8080/hello
二、采用JAR的方式启动Spring Boot程序
在采用Spring Initializr工具生成项目的时候,我们指定了项目packaging属性为jar,但即使不指定packaging属性,Spring Boot默认打包方式就是JAR包,官方文档也推荐JAR包。
首先进入IDEA的控制台,执行打包命令: mvn clean package
或者进入Maven Projects,执行package:
执行完之后,可以看到target目录下多出了一个jar包:
之后在控制台执行命令: java -jar target/spring-boot-helloworld-0.0.1.jar
再去浏览器访问即可。