个人学习笔记,仅作分享。
成品代码
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
45
46
47
48
49
50
51
52
53
|
package top.suyiiyii;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@GetMapping("/health")
String health() {
return "OK";
}
@GetMapping("/server_info")
ServerInfo serverInfo() {
ServerInfo info = new ServerInfo();
info.setMessage("SpringBoot101 server by suyiiyii.");
return info;
}
@GetMapping("/all_grades")
List<Grade> allGrades() {
return List.of(
new Grade("20180001", 90),
new Grade("20180002", 80),
new Grade("20180003", 70)
);
}
@Data
public static class ServerInfo {
private String message;
}
@Data
@AllArgsConstructor
public static class Grade{
private String studentid;
private int grade;
}
}
|
RequestMapping
和 GetMapping
RequestMapping
默认会注册这个接口的所有方法,也就是说会忽略方法,除非显式设置@RequestMapping(value = "/", method = RequestMethod.GET)
为了编写方便,引入 GetMapping
和@PostMapping
,相当于RequestMapping
加上特定的方法的配置
方法的返回和 JSON
因为添加了@RestController,所以默认会将方法的返回内容 JSON 化然后响应。
注意!单独返回一个 String,不会在 String 两边加双引号
1
2
3
4
|
@GetMapping("/health")
String health() {
return "OK";
}
|
这个返回的是 OK,不是”OK”!!
Controller 和 Mapping
Controller 是类级别的,Mapping 是方法级别的。
一般按照业务划分控制器界限,每个控制器负责一个特定的业务功能。
JavaBean、bean、POJO、PO、DTO、VO、BO
bookmark
bookmark
DataSource
在编程和数据库管理中,数据源(DataSource)是一个用于存储、检索和管理数据的对象。它可以是一个数据库,如 MySQL、PostgreSQL 或 SQLite,也可以是一个文件,如 CSV 或 JSON 文件,甚至可以是一个 API 或 Web 服务。
在 Java 和 Spring 框架中,DataSource 是一个接口,它代表了一个数据库连接池。DataSource 对象可以被用来获取数据库连接,执行 SQL 查询,并处理结果。使用 DataSource 而不是直接使用数据库连接有几个优点,包括:
- 连接池:DataSource 可以管理一个连接池,这意味着它可以重用已经存在的数据库连接,而不是为每个请求创建一个新的连接。这可以大大提高应用程序的性能。
- 事务管理:DataSource 可以提供对事务的支持,这使得你可以在一个数据库会话中执行多个操作,而且可以选择在出现错误时回滚所有的操作。
- 配置和管理:DataSource 可以被配置为自动处理一些常见的数据库任务,如连接超时、连接重试等。
在 Spring Boot 应用中,你可以在 application.properties
或application.yml
文件中配置 DataSource,例如:
1
2
3
4
|
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
|
这些配置将被用来创建一个 DataSource 对象,你可以在你的代码中注入这个对象,并使用它来执行数据库操作。
临时数据库
在开始一个新项目并需要一个临时的数据库进行测试时,你可以选择使用内存数据库,如 H2、HSQLDB 或 Derby。这些数据库在应用程序启动时创建,并在应用程序关闭时销毁,非常适合进行测试和开发。
Spring Boot 可以自动配置 H2、HSQLDB 和 Derby 内存数据库。你只需要在你的 pom.xml
文件中添加相应的依赖,Spring Boot 就会自动配置一个 DataSource。
例如,如果你选择使用 H2 数据库,你可以添加以下依赖:
1
2
3
4
5
|
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
|
然后,在你的 application.properties
或application.yml
文件中,你可以配置 DataSource 的 URL,用户名和密码。对于 H2 内存数据库,URL 通常是jdbc:h2:mem:testdb
,用户名和密码可以是任何值。
1
2
3
4
|
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=password
spring.datasource.driver-class-name=org.h2.Driver
|
这样,当你的应用程序启动时,Spring Boot 会自动创建一个 H2 内存数据库,并配置一个 DataSource 对象供你使用。