精华内容
下载资源
问答
  • Spring Boot 入门实战,实现一个 TODO 系统的后端 API 项目。 1. 实现功能 基于 Spring Boot 框架,实现一个 TODO 程序的后端 API 微服务。 使用 MySQL 数据库保存数据 使用 JpaRepository 访问数据库 基于 ...

    Spring Boot 入门实战,实现一个 TODO 系统的后端 API 项目。
    附: 前端Vue3.0 + Element Plus实现

    1. 实现功能

    1. 基于 Spring Boot 框架,实现一个 TODO 程序的后端 API 微服务。
    2. 使用 MySQL 数据库保存数据
    3. 使用 JpaRepository 访问数据库
    4. 基于 Swagger 生成在线 API 手册

    2. 前期准备

    1. 安装 Maven
    2. 安装 Java JDK
    3. 开发工具(IDE),推荐 IntelliJ IDEA

    环境: Java V8; Spring Boot 2.4.

    3. 新建项目

    3.1. 基于 Spring Initializr 初始化项目

    访问https://start.spring.io 新建一个 Spring Boot 的项目,Dependencies 中选中 Spring Web。下载到本地,并使用 IntelliJ IDEA 打开。

    3.2. 添加依赖

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>2.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    

    说明:

    • lombok: 帮你封装好多实用方法,比如get,set和log方法,免去写大量的GET,SET方法。这样既少写代码,又代码整洁。
    • springfox-boot-starter: 基于wagger,开源的API doc框架,可以将我们的Controller的方法以文档的形式展现。并且可以在线测试api。
    • validation-api: API端校验接收到的参数。
    • mysql-connector-java:mySql连接库。
    • spring-boot-starter-data-jpa: JpaRepository相关,ORM库,用于数据库访问。

    3.3. 增加配置文件

    1) 创建config文件夹在项目根目录(与 src 目录平级)。 (也可以放在 src/main/resources 下面)
    2) 新建 application.yaml 或 application.properties 文件。

    server:
      port: 8080
    
    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/todoapi
        username: root
        password: your_db_password
        driver-class-name: com.mysql.cj.jdbc.Driver
    
      jpa:
        properties:
          hibernate:
            hbm2ddl:
              auto: update
    

    说明:

    1. server.port 指定 api 运行端口
    2. spring.datasource 数据库连接配置
    3. spring.jpa.properties.hibernate.hbm2ddl.auto 根据 Java 中的类,自动创建数据库表结构。

    4. 编写代码实现TODO程序的API

    4.1. 实体类-Task

    @NoArgsConstructor
    @Data
    @Entity
    @ApiModel("Task")
    public class Task {
    
        @Id
        @GeneratedValue
        @ApiModelProperty("Primary Key - ID")
        private Long id;
    
        @ApiModelProperty("Content of the task")
        @Size(max = 20)
        private String content;
    
        @ApiModelProperty("Completed or not")
        private boolean completed;
    
        @ApiModelProperty("Last update time")
        private Date editTime;
    }
    

    说明:

    1. @ApiModel, @ApiModelProperty 注解用于生成Wagger文档的描述;
    2. @NoArgsConstructor, @Data 来自lombok,用于自动生成get/set方法;
    3. @Size 自动校验API参数,并自动体现在生成Wagger的文档中
    4. @Entity, @Id, @GeneratedValue Jpa相关,用于ORM等

    4.2. 数据库访问

    因为我们采用了JpaRepository,它本身就包含了Hibernate的ORM相关实现, 所以默认提供了fingAll(),findAllById(),save(), Update()等实现。这里我们在内置实现的基础上,增加一个findByCompleted方法。

    public interface TaskRepository extends JpaRepository<Task, Long> {
        List<Task> findByCompleted(boolean completed);
    }
    

    是不是还需要再写代码来实现这个方法啊?错了,不需要,因为我们已经实现了。这就是Spring-data-jpa的一大特性:通过解析方法名创建查询。参数中的参数complete自动对应Task类中的complete

    4.3. API代码。

    创建TaskController.java

    @Api(tags="Task Management")
    @RequestMapping("/todo-api/v1/tasks")
    @RestController
    public class TaskController {
        @Autowired
        TaskRepository taskRepository;
    
        @ApiOperation("Get task list ")
        @GetMapping("/")
        public List<Task> index(@ApiParam("filter by completed. Empty means all") @RequestParam(required = false) Boolean completed) {
    
            return completed == null?
                    taskRepository.findAll():
                    taskRepository.findByCompleted(completed);
        }
    
        @ApiOperation("Create a new task")
        @PostMapping("/")
        public String postTask(@RequestBody Task task) {
            task.setEditTime(new Date());
            this.taskRepository.save(task);
            return "success";
        }
    
        @ApiOperation("Update a task")
        @PutMapping("/{id}")
        public String putTask(@PathVariable Long id, @RequestBody Task newTask) {
            newTask.setEditTime(new Date());
            this.taskRepository.save((newTask));
            return "success";
        }
    

    说明:

    1. @ApiOperation, @Api 注解用于生成Wagger文档的描述;
    2. @RequestMapping,@GetMapping, @PostMapping, @PutMapping 用于指定API路由
    3. @RequestBody, @PathVariable,@RequestParam 用于接收API调用时传入的参数。 (分别对应 body,url路径,url查询中的参数)
    4. @Autowired, TaskRepository taskRepository; 注入TaskRepository,进行数据库操作。

    4.4. 应用主类增加注解@EnableOpenApi

    增加注解@EnableOpenApi, 用于启用Swagger在线文档支持。

    @EnableOpenApi
    @SpringBootApplication
    public class TodoApiApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(TodoApiApplication.class, args);
    	}
    }
    
    // 实现跨域请求
    @Bean
    public WebMvcConfigurer corsConfigurer() {
    	return new WebMvcConfigurer() {
    		@Override
    		public void addCorsMappings(CorsRegistry registry) {
    			registry.addMapping("/**")
    					.allowedOrigins("*")
    					.allowedMethods("GET","PUT","POST","OPTIONS","DELETE")
    					.allowCredentials(false).maxAge(3600);
    		}
    	};
    }
    

    5. 执行API

    如果使用IntelliJ IDEA ,直接找到TodoApiApplication文件,右键,选择 ‘Run …’ 即可。

    http://localhost:8080/swagger-ui/, 可以直接查看、测试实现的api。

    在这里插入图片描述

    测试api,点击’Try it Out’即可。然后可以修改传入参数

    在这里插入图片描述

    6. 总结

    麻雀虽小,五脏俱全。这个小的API包含了数据库初始化,数据库访问,Swagger文档等内容。但是代码量确实很小的,可以看出Spring Boot框架的强大。Spring Boot强调开箱即用,提供各种默认配置来简化项目配置。基于约定优于配置的原则,简化配置,实现快速开发。

    代码: https://github.com/jackniu81/todo-app/tree/main/todo-api






















    展开全文
  • 什么是TODO.md? TODO.md格式基于 Flavored 。 TODO.md是一个文件,其中包含按多个部分组织的任务。 可以使用将TODO.md中的任务可视化,其中各节成为板上的列。 为什么要保留一个TODO.md? 对于一个项目,有许多...
  • 用心打造一款极致体验的TODO开源客户端,数据接口来自鸿神的玩Android,不放过每一个细节,用心写代码
  • 简单的bash TODO列表管理器,支持特定于目录的TODO列表,推送/弹出和行号。 安装 将以下行添加到~/.bashrc文件中(根据需要更改路径)。 if [ -f path/to/TODO.todo.sh ] ; then . path/to/TODO.todo.sh fi 这将...
  • JS-TODO列表页面 在项目中,我的创建了一个简单的todo应用程序。 该页面由valinna JS(JS6)制成,并完成了以下里程碑: Miltestone 1-设置Webpack以加载样式文件,图片和引导程序类。 Miltestone 2-创建将动态...
  • 最重要的Todo插件 维护者: 联合维护者: 一个插件,用于跟踪列表中的Todo问题,并每天向您发送有关Todo列表的提醒。 安装 进入发布页面并下载最新版本。 在您的Mattermost上,转到“系统控制台”->“插件管理”...
  • TODO Code Todo List v1.0.unitypackage
  • todo是一个自托管的todo网络应用程序,可让您以简单而最少的方式跟踪待办事项。 :memo: 屏幕截图 北方主题 德古拉主题 在下面的“预设颜色主题”部分中查看所有主题 演示版 还有一个公共演示实例,为: ://todo....
  • Todo 1.1.0

    2018-10-09 16:43:23
    todo蒙古文工具,可以在安卓系统上写传统蒙古文和“陶德”蒙古文!!!
  • ToDo-WebApp 在任务三中,做了一个 PC 端的 ToDo 应用。任务四是将它优化,以适应移动端设备。 ToDo WebApp Version 手机查看 ↓ 二维码 ↓ Details 数据存储 以 JSON 模拟数据的形式存储于 LocalStorage 中 使用...
  • obsidian-plugin-todo-源码

    2021-05-15 01:42:57
    黑曜石TODO插件 黑曜石中基于文本的GTD。 特征 汇总保管库中所有未完成的待办事项,并在单个视图中列出它们 按类型划分“待办事项”(“今天”,“计划中”,“收件箱”和“某天/也许”) 通过添加标签#YYYY-DD-MM...
  • todo 更改名称: todo -n Things to Do 要添加新任务: todo buy milk todo "eat cookies" todo 1 pour milk 要编辑任务: todo -e 2 buy more milk 移动任务: todo -m 3 2 标记任务: todo 1 删除任务...
  • -todo 从流中的文件注释中解析并输出TODO和FIXME 以gulp-stream解析您的文件,从注释中提取待办事项/固定内容,并使用在报告器中将其报告给您选择。 输出的问题应在上报告 支持最新的leasot版本7.0.0 。 请仔细...
  • slim 是一个开源的 todo 应用程序,它使用 todo.txt 格式。 圆滑的图形用户界面现代而简单,但仍然提供了一组不错的功能,可以帮助用户完成工作。 时尚可作为 Windows、MacOS 和 Linux 的客户端使用。 用户可以将上...
  • slim 是一个开源的 todo 应用程序,它使用 todo.txt 格式。 圆滑的图形用户界面现代而简单,但仍然提供了一组不错的功能,可以帮助用户完成工作。 时尚可作为 Windows、MacOS 和 Linux 的客户端使用。 用户可以将上...
  • 待办事项清单 协作React ToDo清单
  • todocheck是用于注释的TODO注释的静态代码分析器。 通过使用来自任何问题注释它们,您可以创建可行的TODOs 。您将再也不会发现散布在您的代码库中的奥秘,未记录的TODO注释。 有关更多信息,请参。 目录 GitLab ...
  • 一个小而简单的 Windows 待办事项管理器,旨在简化、性能和小内存消耗。 用 WINAPI 编写以确保在 windows 平台上的最大性能。
  • Todo清单 v2.0.0官方版

    2020-12-20 09:37:30
    为您提供Todo清单下载,Todo清单是一款跨平台待办事项与时间管理应用,成为时间掌控者,支持Android、Windows和Mac多平台,基于Ivy Lee时间管理法量身打造,完美融入全球知名的Pomodoro番茄工作法,搭配强大的数据...
  • ToDo:MVVM架构中的ToDo应用
  • actix_todo:在​​渲染器上部署的Actix Todo示例
  • Remember 先进的离线Todo应用程序
  • 这是TODO应用。 只需启动Redis服务器并进行探索。 运行ruby TODO.rb或rackup -p 4567
  • 待办事项API 提供TODO Apps后端的API。 使用此API,无需从头开始编写后端代码。 使用的技术: 节点JS ExpressJS的 猫鼬和MongoDB JSON Web令牌 如果您发现此API有用,请给该项目加星号。
  • React Todo清单
  • 主要介绍了详解python Todo清单实战,需要实现的功能有添加任务、删除任务、编辑任务,操作要关联数据库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • sleek是一个基于todo.txt,免费和开源的todo应用程序。适用于Linux,Windows和MacOS sleek是使用todo.txt格式的开源todo应用程序。 sleeks GUI既现代又干净,但提供了一组不错的功能,可以帮助用户完成任务。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 850,863
精华内容 340,345
关键字:

todo表