Spring官方提供了Spring Initializr网站来创建Spring Boot项目,Intellij IDEA编辑器也内置了Spring Initializr生成器。这里就以Spring Initializr为例介绍如何初始化Spring Boot项目骨架。
1. 使用Spring Initializr
-
访问Spring Initializr网站;
-
在左侧依次选择Project(项目构建方式:使用Maven,还是使用Gradle方式)、Language(默认选择Java,一般无需修改)、Spring Boot(默认选择2.7.3,比较稳定,一般无需修改),设置Project Metadata相关信息;
-
Group:项目所属组织的标识符,比如:com.jiaoxn;
- Artifact:项目标识符,比如:example;
- Name:默认保持与Artifact一致即可;
- Description:项目的描述信息;
- Package name:项目报名,默认根据Group和Artifact的组合,比如:com.jiaoxn.example;
- Packaging:项目打包方式,默认为JAR,默认即可
- Java:项目使用的JDK版本,选择11或者8版本
-
在右侧选择相关的依赖,这里仅介绍开发Web项目的基础依赖:
Spring Web:使用Spring MVC构建Web应用程序,包括RESTful,并使用Apache Tomcat作为默认的嵌入式容器。
配置完成后,点击GENERATE,Spring Initializr会自动创建项目比提供ZIP包下载。
2. 项目文件夹结构
项目文件夹的结构:
笔者将默认的application.properties文件改为application.yml文件
其中:
src/main/java对应开发目录,业务代码都是在这里面;src/main/resource对应资源目录, 包括配置文件、静态资源、模板文件等;src/test对应测试文件目录;pom.xml对应SpringBoot的配置文件,用来管理项目依赖;ExampleApplication.java是该应用的主类。
3. 启动应用
运行Spring Boot应用,就是运行应用主类的main方法,可以通过IDE工具运行或者构建工具运行。
3.1 通过IDE工具启动
使用IDEA编辑器,点击右上方的Run ...按钮即可启动该项目,点击Debug ...按钮以调试模式启动该项目。
3.2 通过构建工具启动
如果想以构建工具的方式运行该应用,需要先确保应该安装了Spring Boot Maven插件,即在pom.xml中检查是否含有如下内容:
<build>
<plugins>
<!-- 定义Spring Boot Maven,用于运行Spring Boot应用 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后,在包含pom.xml文件的路径中执行如下命令:
mvn spring-boot:run
3.3 查看应用
此时访问浏览器并输入localhost:8088会得到以下界面:
该界面是Spring Boot的默认的错误界面,表示请求的服务不存在。
4. 定义第一个控制器
本系列教程是介绍:在前后端分类架构中,如何使用Spring Boot框架开发后端接口,不会介绍Thymeleaf视图模板技术。
在包com.jiaoxn.exmaple下创建controller包,并在其中创建ExampleController.java文件,编写如下内容:
package com.jiaoxn.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author jiao xn
* @date 2022/8/24
*/
@Controller
public class ExampleController {
@GetMapping("/example")
@ResponseBody
public String hello() {
return "Hello, Spring Boot!";
}
}
重新运行该项目,并在浏览器中访问localhost:8088/example,得到以下界面:
如果以前用过Spring MVC,对上面的代码肯定很熟悉,它是一个很简单的MVC中的控制器,其中:
@Controller:修饰类,指示该类的实例作为控制器@GetMapping:修饰方法,指示该方法所能处理的GET请求地址@ResponseBody:修饰方法,指定该方法生成RESTful响应
5. 配置热部署
默认情况下,新增Controller文件或者修改Controller文件后,都需要手动重新运行该项目,这大大影响了开发效率。Spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用,具体使用方法如下:
- 编辑
pom.xml文件,添加spring-boot-devtools依赖,然后安装maven依赖
...
<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
</dependencies>
-
修改IDEA相关配置
-
打开
Settings界面,依次选择Build、Execution、Deployment、Compiler,勾选Build project automatically- 2021版之前,通过组合键
ctrl+alt+shift+/打开registry窗口,勾选compiler.automake.allow.when.app.running; - 2021版之后,在
Settings界面,在Advanced Settings中,勾选Allow auto-make ...
- 2021版之前,通过组合键
-
重启IDEA软件
6. 打包应用
Spring Boot内嵌了Web服务器(默认是Tomcat),无需将Spring Boot应用部署到其他Web服务器,只需打包成JAR包即可。
打包之前也需要确认,当前Spring Boot应用配置了Spring Boot Maven依赖,具体确认方法参考3.2节。另外,还需要确认pox.xml中的<packaging.../>元素的值是否为jar,默认情况下没有该元素是被省略的,此时代表使用packaging的默认值:jar。
与启动应用类型,打包应用也有2中方法:通过IDE或者使用构建工具。
- 打开IDEA右侧的
Maven面板,双击package打包项目应用; - 在pom.xml文件所在的路径下,一次执行
mvn clean、mvn package2条命令。
打包过程会先执行compile阶段(编译项目)、test阶段(测试阶段)、package阶段(打包阶段)。
打包成功后,,可在target目录下看到对应的*.jar文件。jar文件名称中,example对应第1章中介绍的Artifact项目标识符,0.0.1-SNAPSHOT是版本号,可在pom.xml中配置。
打包得到的JAR文件可以通过java -jar <filename>.jar命令来运行。