文章目录
- 1. 项目构思
- 2. 技术选型
- 3. 实施步骤
- 3.1 创建Spring Boot项目
- 3.2 编写控制器
- 3.3 编写Thymeleaf模板
- 3.4 运行项目
- 4. 项目演示
- 结语
在学习了Redis的基础知识后,为了更好地应用所学知识,我们将使用Java Spring框架构建一个小型实战项目。本篇博客将引导你完成一个任务管理系统,其中任务信息将存储在Redis中,以充分利用Redis的高性能和灵活性。
1. 项目构思
我们将创建一个简单的任务管理系统,用户可以通过Web界面添加、查看和完成任务。任务信息将以JSON格式存储在Redis的哈希数据结构中。
2. 技术选型
- 后端框架: Spring Boot(Java)
- 前端框架: Thymeleaf模板引擎
- 数据库: Redis
- 项目结构:
src/main/java/com/example/taskmanager/TaskManagerApplication.java
:Spring Boot应用主类src/main/java/com/example/taskmanager/controller/TaskController.java
:控制器类src/main/resources/templates/index.html
:Thymeleaf模板文件
3. 实施步骤
3.1 创建Spring Boot项目
使用Spring Initializer(https://start.spring.io/)创建一个新的Spring Boot项目,选择Web、Thymeleaf和Redis作为依赖。
3.2 编写控制器
在TaskController.java
中编写任务控制器:
package com.cheney.example.taskmanager.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import java.util.Map;@Controller
@RequestMapping("/tasks")
public class TaskController {@Autowiredprivate RedisTemplate<String, Object> redisTemplate;@GetMappingpublic String index(Model model) {Map<Object, Object> tasks = redisTemplate.opsForHash().entries("tasks");model.addAttribute("tasks", tasks);return "index";}@PostMapping("/add")public String addTask(@RequestParam String taskName, @RequestParam String taskDescription) {redisTemplate.opsForHash().put("tasks", taskName, taskDescription);return "redirect:/tasks";}@PostMapping("/complete/{taskName}")public String completeTask(@PathVariable String taskName) {redisTemplate.opsForHash().delete("tasks", taskName);return "redirect:/tasks";}
}
3.3 编写Thymeleaf模板
在index.html
中编写Thymeleaf模板文件:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Task Manager</title>
</head>
<body><h1>Task Manager</h1><form action="/tasks/add" method="post"><label for="taskName">Task Name:</label><input type="text" id="taskName" name="taskName" required><label for="taskDescription">Task Description:</label><input type="text" id="taskDescription" name="taskDescription" required><button type="submit">Add Task</button></form><ul><li th:each="taskName, taskDescription : ${tasks}"><span th:text="${taskName}"></span><span th:text="${taskDescription}"></span><form action="/tasks/complete/{taskName}" method="post" style="display: inline;"><input type="hidden" name="taskName" th:value="${taskName}"><button type="submit">Complete</button></form></li></ul>
</body>
</html>
3.4 运行项目
在项目根目录下使用以下命令运行Spring Boot应用:
./mvnw spring-boot:run
访问http://localhost:8080/tasks
,你将看到一个简单的任务管理系统。你可以添加任务、标记任务为完成,所有的任务信息都将存储在Redis中。
4. 项目演示
下面是项目的简单演示:
- 打开浏览器,访问
http://localhost:8080/tasks
。 - 输入任务名称和描述,点击"Add Task"按钮,任务将被添加到列表中。
- 点击任务后面的"Complete"按钮,任务将被标记为已完成,该任务会从列表中移除。
结语
通过这个小型实战项目,我们成功地将所学知识应用到了一个实际的系统中。使用Spring Boot框架,我们能够轻松搭建起一个基于Java的Web应用,并结合Thymeleaf模板引擎和Redis数据库构建一个简单而完整的任务管理系统。这个项目不仅帮助我们巩固了所学知识,还展示了如何构建一个完整的Web应用。在接下来的学习中,我们将继续研究Redis的其他高级特性和应用场景,以更好地应用Redis在实际项目中。通过这个小型实战项目,我们深入了解了Spring Boot和Redis的集成,为我们未来的Java Web开发奠定了基础。