Spring Boot 构建Rest服务实验手册(二)

在本系列的上一篇文章中, 给大家演示了如何用Spring Boot构建一个基本的 Rest 服务。这次我们继续深入,为应用加入数据库的功能。
English Version

配置数据库

为了简化案例,我们使用纯 Java 的数据库 H2,需要配置如下:

  1. 改变 application.properties 的文件名为 application.yml
  2. 在文件中加入 H2 的配置参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

spring:
datasource:
driverClassName: org.h2.Driver
url: jdbc:h2:/opt/rss-api/data/hohistar-con-data
username: sa
password:
jpa:
database: H2
generate-ddl: true
show-sql: true
hibernate:
ddl-auto: create-drop
h2:
console:
enabled: true
path: /api/h2
settings:
web-allow-others: true

注意:需要将url的目录指到在你的机器上存在的目录

为实体类加入JPA的注解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

@Data
@AllArgsConstructor
@Entity
public class Todo {


@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;

private String title;

private String desc;

}

增加 Repository 类

新增一个 repository 包,在包中新建一个 interface: TodoRepository, 该接口继承自 JpaRepository。 并且在接口的定义处加上 @Repository 注解。

1
2
3
4
@Repository
public interface TodoRepository extends JpaRepository<Todo, Integer> {

}

定义业务类

新增一个 biz 包, 在包中新建一个业务类: TodoBiz, 该类是一个简单Java类,但是加上了 @Service 注解,在类中注入了 TodoRepository 的实例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class TodoBiz {

@Autowired
private TodoRepository todoRepository;

@Transactional
public void addTestTodos(List<Todo> todos) {

todos.forEach(o -> todoRepository.save(o));
}

@Transactional
public void addTodo(Todo todo) {

todoRepository.save(todo);
}


}

改造Api类

打开 TodoApi 类,新增一个 testAddTodos 的方法,在方法中将 Todo 项保存在数据库中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
@RestController
public class TodoApi {

@Autowired
private TodoBiz todoBiz;

@GetMapping("/ok")
public String ok() {
return "ok";
}

@GetMapping("/todo")
public List<Todo> getTodoList() {

List<Todo> todos = new ArrayList<>();
todos.add(new Todo(1, "Call Metting", ""));
todos.add(new Todo(2, "Print File", ""));

return todos;
}

@GetMapping("/test/add/todos")
public String testAddTodos() {


List<Todo> todos = new ArrayList<>();
todos.add(new Todo(null, "Call Metting", ""));
todos.add(new Todo(null, "Print File", ""));

todoBiz.addTestTodos(todos);

return "ok";

}

@PostMapping("/todo")
public String addTodo(@RequestBody Todo todo) {

todoBiz.addTodo(todo );

return "ok";
}

}

注意:在Api中注入了业务对象 TodoBiz

运行查看结果

  1. 在浏览器中访问一次 localhost:8080/test/add/todos,返回”ok”字符串
  2. 在 localhost:8080/api/h2 中查看数据库中的数据

下一步

下一篇文章中,将介绍如何规范、统一返回数据的格式和模板化过程调用。

本文标题:Spring Boot 构建Rest服务实验手册(二)

文章作者:梅老师

发布时间:2019年07月10日 - 12:07

最后更新:2020年09月16日 - 08:09

原始链接:https://www.mls-tech.info/java/springboot-practice-manul-2/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。