一、Spring Boot Web 应用开发
Spring Boot 提供了很多功能强大的库和工具,用于开发 Web 应用程序。在本文中,我们将讨论 Spring Boot Web 应用开发的一些基础知识,并提供一些实用的示例。
Spring MVC
Spring MVC 是一种基于 Java 的 Web 框架,它提供了一种基于 MVC 模式的 Web 应用程序开发方式。在 Spring Boot 中,默认使用 Spring MVC 作为 Web 应用程序的开发框架。
在 Spring MVC 中,控制器负责处理请求并返回响应。在 Spring Boot 中,我们可以使用 @Controller
或 @RestController
注解来定义控制器。例如:
@RestController
public class MyController {
@GetMapping("/hello")
public String hello() {
return "Hello, World!";
}
}
在这个示例中,我们定义了一个名为 MyController
的控制器,并在其中定义了一个 hello
方法。该方法使用 @GetMapping
注解将 /hello
路径映射到该方法,并返回一个字符串 "Hello, World!"。
Thymeleaf 模板引擎
Thymeleaf 是一种 Java 模板引擎,它可以将模板文件渲染成 HTML 页面。在 Spring Boot 中,我们可以使用 Thymeleaf 模板引擎来创建动态的 Web 页面。
在 Spring Boot 中,我们需要在 pom.xml 文件中添加 Thymeleaf 依赖:
代码语言:javascript复制<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
然后,在控制器中使用 Model
对象来向模板中添加数据。例如:
@Controller
public class MyController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("name", "World");
return "hello";
}
}
在这个示例中,我们向模板中添加了一个名为 name
的变量,并将其值设置为 "World"。然后,我们返回了一个名为 hello
的模板名称。
在模板中,我们可以使用 Thymeleaf 表达式来获取和显示数据。例如:
代码语言:javascript复制<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
</head>
<body>
<h1 th:text="'Hello, ' ${name} '!'"></h1>
</body>
</html>
在这个示例中,我们使用 Thymeleaf 表达式来获取名为 name
的变量,并将其值显示在 HTML 页面上。
RESTful API
RESTful API 是一种 Web API 设计风格,它使用 HTTP 协议中的 GET、POST、PUT 和 DELETE 方法来实现资源的 CRUD(Create、Read、Update 和 Delete)操作。在 Spring Boot 中,我们可以使用 @RestController
注解来创建 RESTful API。
例如,我们可以定义一个用于获取所有用户信息的 RESTful API:
代码语言:javascript复制@RestController
@RequestMapping("/users")
public class UserController {
private List<User> users = new ArrayList<>();
@GetMapping
public List<User> getUsers() {
return users;
}
@PostMapping
public void addUser(@RequestBody User user) {
users.add(user);
}
@GetMapping("/{id}")
public User getUser(@PathVariable("id") int id) {
return users.stream()
.filter(user -> user.getId() == id)
.findFirst()
.orElseThrow(() -> new UserNotFoundException(id));
}
@PutMapping("/{id}")
public void updateUser(@PathVariable("id") int id, @RequestBody User user) {
User existingUser = users.stream()
.filter(u -> u.getId() == id)
.findFirst()
.orElseThrow(() -> new UserNotFoundException(id));
existingUser.setName(user.getName());
existingUser.setEmail(user.getEmail());
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable("id") int id) {
User userToDelete = users.stream()
.filter(user -> user.getId() == id)
.findFirst()
.orElseThrow(() -> new UserNotFoundException(id));
users.remove(userToDelete);
}
}
在这个示例中,我们定义了一个名为 UserController
的 RESTful API 控制器,并在其中实现了获取所有用户、获取单个用户、添加用户、更新用户和删除用户的操作。
我们可以使用 HTTP 请求来调用这些操作,例如:
- GET /users:获取所有用户。
- POST /users:添加一个新用户。
- GET /users/{id}:获取指定 ID 的用户信息。
- PUT /users/{id}:更新指定 ID 的用户信息。
- DELETE /users/{id}:删除指定 ID 的用户。