其实,创建 SpringBoot 的项目就是在创建 Maven 项目。
如果你还不知道 Maven 是什么,请移步 Maven基本概念。
一、创建一个 Maven 项目
-
创建一个简单的工程:
-
填写组织名(Group Id),项目名(Atrifact Id),版本号(Version):
-
项目结构如下:
二、配置 pom 文件
引入 SpringBoot 的依赖 spring-boot-web-starter
以及它的 parent spring-boot-starter-parent
。
<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.qjl</groupId>
<artifactId>bootstart</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 在这里配置了SpringBoot的parent,后续配置的spring-boot的依赖的version就可以直接继承该version -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 因为上面已经配置了parent,所以直接从parent继承版本号 -->
</dependency>
</dependencies>
</project>
当然,你也可以这样配置:
<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.qjl</groupId>
<artifactId>bootstart</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.4.1.RELEASE</version>
</dependency>
</dependencies>
</project>
不过这样配置的话,后续的 spring-boot 的相关依赖的 dependency 标签就必须完整填写,不能省略版本号,通常情况下,后续还会有很多的 spring-boot 的依赖,so ,建议使用 parent 的方式来配置。
ps:引入了这个 spring-boot-web-starter
依赖以后就会产生如下效果:
spring-boot-web-starter 会把 Spring 开发 Web 项目的一系列 jar 包都引入进来,比如我们的 spring-webmvc
,解析和发送 JSON 字符串所需要的 jackson
,最重要的是它把我们的 tomcat 也内嵌进来了,我们连服务器都不需要额外准备了,方便。
三、创建一个 Controller
创建一个 SpringMVC 的控制器 Controller 用于处理请求:
package com.qjl.bootstart.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 类名称:SpringMVC的控制器
* 全限定性类名: com.qjl.bootstart.controller.BootController
* @author 曲健磊
* @date 2018年8月4日上午10:38:23
* @version V1.0
*/
@RestController
@RequestMapping("/boot")
public class BootController {
@RequestMapping("/hello")
public String boot() {
return "hello SrpingBoot";
}
}
四、创建一个测试类启动SpringBoot项目
package com.qjl.bootstart.main;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 类名称:用于启动SpringBoot
* 全限定性类名: com.qjl.bootstart.main.SpringBootMain
* @author 曲健磊
* @date 2018年8月4日上午10:41:27
* @version V1.0
*/
@SpringBootApplication
public class SpringBootMain {
public static void main(String[] args) {
// 启动SpringBoot项目
SpringApplication.run(SpringBootMain.class, args);
}
}
右击 --> Run As --> Java Application 运行当前主程序:
是的,到目前为止我们用 SpringBoot 搭建的项目就已经成功运行并部署到了内嵌的 tomcat 上了,按照 Controller 配置的 RequestMapping 发送个请求试试:
出错了,没有匹配到?经过测试,是需要把 Controller 和 启动类放到同一目录下才可以匹配请求,修改 java 文件如下:
重新启动项目并发送请求 localhost:8080/boot/hello :
匹配成功!
注意:发送的请求不需要加项目名。
运行 SpringBoot 项目除了 Run As 的方式以外还可以运行 Maven 的 spring-boot:run
命令来启动,如果是第一次执行该命令的话会下载 SpringBoot 的相关插件,等待插件下载完毕后就会启动项目。
五、打包 SpringBoot 项目
因为我们打包项目通常需要把项目依赖的所有 jar 包都导出,而如果是使用 SpringBoot 创建的项目,如果需要实现这一效果,还需要在 pom 文件中配置一个插件:
<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.qjl</groupId>
<artifactId>bootstart</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 有了这个插件,在执行 maven 的 package 命令打包项目时就会把依赖的 jar 包一并导出,不信?去了插件自己 package。 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
在项目上右击 --> Run As --> Maven build(应该有两个 build,选择那个后面没有快捷键的),输入 package 命令:
项目右击 --> 刷新,可以看出项目已经成功导出到 target 目录下:
六、运行打包后的 jar 文件
在 target 目录下,按住 shift 键,右击,选择在此处打开命令行窗口,在命令行输入:java -jar bootstart-0.0.1-SNAPSHOT.jar
就可以在控制台启动项目:
发个请求试试:
仍然是 OK 的。
总结一下,这篇文章主要讲了:
- 创建一个 SpringBoot 项目
- 配置 pom 文件
- 编写 Controller 匹配请求
- 在与 Controller 同目录下编写主类用于启动项目
- 启动 SpringBoot 项目的两种方式
- 打包 SpringBoot 项目
- 运行打包后的 SpringBoot 项目