目前我们已经成功启动并看到了Spring Boot应用的初始画面(Spring Boot在之后都称为“应用”),但是这不是我们想要的东西,我们的目的是写一个完美的Java后端应用!
我们现在来创建一个简单的Web控制器(Controller),让它在浏览器访问特定 URL 时返回 "Hello World!"。
什么是控制器 (Controller)?
- 在 MVC (Model-View-Controller) 架构模式中(Spring MVC 也遵循这个模式):
- Controller 负责接收和处理来自用户的请求(比如浏览器发起的 HTTP 请求)。
- 它会根据请求的类型和参数,决定调用哪些业务逻辑 (Service 层,我们稍后会讲到)。
- 最后,它会准备好要返回给用户的数据 (Model),并选择一个视图 (View) 来展示这些数据。
- 对于 RESTful API,Controller 通常直接返回数据 (如 JSON 或 XML),而不是一个完整的 HTML 页面。
在你的项目中创建 HelloController 类
- 在 IntelliJ IDEA 的项目视图中,找到你的主 Java 包 (例如
src/main/java/com/NZI/web
)。 - 右键点击这个包 --> 新建 --> 软件包。
- 给这个软件包命名Controller。
- 点击 "OK" 或回车。
- 右键点击Controller软件包--> 新建 --> Java 类。
- 给这个类起名HelloController。
现在你就创建了一个空的 HelloController.java
文件。
目前结构是这样:

编写 HelloController 代码
打开 HelloController.java
文件,并修改其内容如下:
package com.NZI.web; // 这是你的包名
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController // 1. 标记这是一个 RESTful Web 服务的控制器
public class HelloController {
@GetMapping("/hello") // 2. 映射 HTTP GET 请求到 /hello 路径
public String sayHello() {
return "Hello World!"; // 3. 返回的字符串将直接作为 HTTP 响应体
}
}
我们来看这份代码:
package com.NZI.web;
: 声明这个类所在的包。import org.springframework.web.bind.annotation.GetMapping;
: 导入 GetMapping 注解。import org.springframework.web.bind.annotation.RestController;
: 导入 RestController 注解。@RestController
:- 这是一个方便的组合注解,它本身包含了
@Controller
和@ResponseBody
。 @Controller
: 标记这个类是一个 Spring MVC 控制器,可以处理传入的 Web 请求。@ResponseBody
: 告诉 Spring MVC,这个控制器中所有方法的返回值都应该直接作为 HTTP 响应的正文内容(Body)返回给客户端,而不是试图解析成一个视图名称(比如 HTML 模板)。这对于创建 RESTful API 非常有用,因为它们通常返回 JSON 或纯文本。
- 这是一个方便的组合注解,它本身包含了
public class HelloController { ... }
: 定义我们的控制器类。@GetMapping("/hello")
:- 这是一个请求映射注解,专门用于处理 HTTP GET 请求。
- "/hello": 指定当用户通过 GET 方法访问你应用的 /hello 路径时 (例如
http://localhost:8080/hello
),sayHello()
这个方法就会被调用。 - 类似的还有
@PostMapping
,@PutMapping
,@DeleteMapping
,@RequestMapping
(更通用的映射)。
public String sayHello() { ... }
:- 这是一个普通的 Java 方法。
public String
: 表示这个方法返回一个字符串。return "Hello World!"
;: 这个方法返回字符串 "Hello World!"。因为我们使用了@RestController
(或者具体来说是其包含的@ResponseBody
),Spring Boot 会将这个字符串直接作为 HTTP 响应的内容发送回浏览器。
在导入这块,IDEA很方便,你可以不需要自己写import,你只需要在代码中加入类似
@RestController
这样的注释器,IDEA会自动为你添加import语句。
重启运行
刷新你的IDEA,Spring Boot DevTools 这个开发依赖会自动帮你重启应用。
打开浏览器,输入http://localhost:8081/hello
,回车。
不出意外,你能看到Hello World被打印在页面上。

回顾
- 我们创建了一个 Java 类 HelloController。
- 使用 @RestController 将其标记为一个能处理 Web 请求并直接返回数据的控制器。
- 使用 @GetMapping("/hello") 将 sayHello() 方法映射到 /hello 这个 URL 路径的 GET 请求。
- 当访问 http://localhost:8081/hello 时,sayHello() 方法被执行,其返回的字符串被 Spring Boot 作为响应发送给了浏览器。
接下来的任务
下一篇文档我将通过实战项目教你们了解更多关于 Spring Bean 和依赖注入的概念。
Comments NOTHING