下面通过创建一个“Hello World”程序来说明Spring Boot的使用方法。具体步骤如下。
(1)访问Spring官网,在“spring initializr”页面中创建Maven项目。如图3-1所示,在“Project”选项组中,选择“Maven Project”,在“Language”选项组中,选择“Java”,在“Spring Boot”选项组中选择版本“2.7.0”,填写组名“com.jeff”和项目名称“springboothelloworld”。选择依赖项,因为我们要开发一个Web应用程序,所以需要选择Spring Web组件。最后,单击“GENERATE”按钮,生成项目文件springboothelloworld.zip。
▲图3-1 新建Maven项目时的相关信息
(2)解压缩springboothelloworld.zip文件到指定的目录。
(3)启动Eclipse,选择“File”→“Import”,在弹出的界面中,选择“Maven”→“Existing Maven Projects”,选择springboothelloworld.zip的解压缩文件夹,将程序导入Maven项目,如图3-2所示。
▲图3-2 导入Maven项目
(4)导入springboothelloworld文件夹,生成Maven项目的目录,如图3-3所示。
▲图3-3 项目目录
(5)若导入的pom.xml文件中提示“unknown error”错误,则说明Eclipse和Maven中的插件不兼容。我们可以通过增加maven-jar-plugin.version的配置信息来解决此类问题。首先,打开pom.xml文件,然后,在<maven-jar-plugin.version>标签中添加版本信息。
<?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
https://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>2.7.0</version>
<relativePath/><!-- lookup parent from repository -->
</parent>
<groupId>com.jeff</groupId>
<artifactId>springboothelloworld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboothelloworld</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</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项目所需的所有Maven默认值。spring- boot-starter-web用于开发Spring Web应用程序或提供RESTful服务。spring-boot-starter-test通过Spring Test、Mockito和JUnit提供单元测试和集成测试功能。
spring-boot-maven-plugin提供了Spring Boot的Maven支持,作用如下。
● 它收集类路径上的所有JAR并构建一个可运行的JAR包。
● 它搜索程序中的public static void main()方法,并将该方法标记为可运行类的方法。
● 它提供了一个内置的依赖项解析器,通过设置版本号以匹配Spring Boot依赖项。
(6)右击项目,在弹出的快捷菜单中依次选择“Maven”→“Update Project”→”Update dependencies”,在弹出的界面中,勾选“Force Update of Snapshots/Releases”复选项,更新项目信息,如图3-4所示。
▲图3-4 更新Maven项目信息
(7)在src/main/java文件夹中,创建一个名为com.jeff.springboothelloworld.controller的包,如图3-5所示。
▲图3-5 创建包
(8)创建一个名为HelloWorldController的控制器类,如图3-6所示。
▲图3-6 创建HelloWorldController类
(9)编写一个简单的RESTful接口方法hello(),该方法返回一个字符串,具体代码如下。
package com.jeff.springboothelloworld.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "Spring Boot Hello world!";
}
}
在HelloWorldController类的上方添加@RestController注解。@RestController注解将HelloWorldController类定义为控制器类;通知Spring将结果字符串直接返回给调用者。@RequestMapping注解用于提供路由的信息,并把HTTP请求映射到对应的处理程序。在此处,当/hello的HTTP请求映射到hello()方法时,将执行对应的hello 程序,hello()方法应该返回字符串“Spring Boot Hello world!”。
(10)若要运行程序,则右击并选择“Run As”→“Spring Boot App”,如图3-7所示。若出现图3-8所示的信息,则表示在Spring Boot中嵌入的Tomcat已启动并在localhost的8080端口上运行了。
▲图3-7 运行springboothelloworld程序
▲图3-8 springboothelloworld启动信息
(11)打开浏览器,访问http://localhost:8080/hello,运行结果如图3-9所示。
▲图3-9 springboothelloworld程序运行结果
当浏览器发起上述链接请求时,首先进入dispatcherServlet,然后把它重定向到控制器类HelloWorldController,执行hello()方法。