文章目录

  • 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 {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    @GetMapping
    public 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. 项目演示

下面是项目的简单演示:

  1. 打开浏览器,访问http://localhost:8080/tasks
  2. 输入任务名称和描述,点击"Add Task"按钮,任务将被添加到列表中。
  3. 点击任务后面的"Complete"按钮,任务将被标记为已完成,该任务会从列表中移除。

结语

通过这个小型实战项目,我们成功地将所学知识应用到了一个实际的系统中。使用Spring Boot框架,我们能够轻松搭建起一个基于Java的Web应用,并结合Thymeleaf模板引擎和Redis数据库构建一个简单而完整的任务管理系统。这个项目不仅帮助我们巩固了所学知识,还展示了如何构建一个完整的Web应用。在接下来的学习中,我们将继续研究Redis的其他高级特性和应用场景,以更好地应用Redis在实际项目中。通过这个小型实战项目,我们深入了解了Spring Boot和Redis的集成,为我们未来的Java Web开发奠定了基础。