用 Spring Boot 构建一个简单的API服务。感受 Spring Boot 的方便,简洁与高效。
环境需求
全部使用免费软件
JDK 8
IDEA 2019 Community
构建项目骨架
在Spring Boot Starter ,填写项目的基本配置信息和项目中需要用到的第三方组件,根据实验的目标,选择用 maven 作为构建工具,Java 作为编程语言,Spring Boot 的版本选择当前的稳定版本 2.1.6。 第三方包选择:Lombok, Spring Web Starter, Spring Data JPA, H2 Database。
然后点击 “Generate the Project” 按钮,下载生成的项目基本包。
然后用 IDEA 打开项目目录, 因为有目录中有 pom.xml 文件存在,IDEA 能侦察到这是个 maven 项目,会自动下载依赖的第三方包。 (如果你是第一次构建 Spring Boot 项目,这个下载的过程可能比较长)
建立API类
在 Spring Boot 中,构建一个 API 非常简单。首先新建一个普通的 Java 类,再在类中定义一个普通的返回字符串的方法。代码如下:
1 | public class TodoApi { |
好,代码写完了。这是一个完全符合 Java 语言要求的简单 Java 类,你可以编译这个类,当然,你没法运行这个类,因为没有 main 方法。 接下来,我们为它加入注解,使它变成一个可以向客户端提供服务的服务类。
- 在类定义上加入 @RestController 注解
- 在 ok 方法上加入 @ GetMapping 注解
改变以后,代码如下:
1 |
|
现在在IDEA中运行项目(IDEA Community 需要建一个 “Run/Debug Configurations”),然后打开浏览器,输入 localhost:8080/ok 就可以看到返回的 ok 字符串显示在屏幕上了。
构建实体类 Todo
在项目中新建 model 包,然后在里面新建一个简单 Java 类: Todo, 在类中加入几个基本属性:
1 | public class Todo { |
在类中,我们既没有写 get, set 方法,也没有写构造方法。因为我们会使用 Lombok 来生成这些。
- 如果需要生成 get, set 方法,则在类定义上加入 @Data 注解
- 如果需要生成构成函数,则使用对应的构造函数的注解,在本例中,我们构造一个包括所有属性的构造函数,则加入 @AllArgsConstructor
完成后的代码如下:
1 |
|
改造API 返回所有的Todo
现在返回到 TodoApi 类,增加一个方法返回所有的 Todo 列表。 增加的代码如下:
1 | "/todo") ( |
在这里,我们将方法映射到URL “/todo” 上, 并构造了两个示例的 Todo 数据。 如果加入这段程序后,出现”Todo没有指定的构成方法”的错误,可以参考 让IDEA IDE识别Lombok的注解 解决
现在,运行程序,访问地址 localhost:8080/todo, 可以看到,Todo 列表被组装为 json 数据格式返回了。
1 | [{"id":1,"title":"Call Metting","desc":""},{"id":2,"title":"Print File","desc":""}] |
下一步
在下一篇文章中,将介绍如何从数据库中获取 Todo 数据。