内存数据库h2-Database 简介:
详情点击 h2-database 官网
h2-Database 由纯 Java 编写的开源内存数据库,可以直接嵌入到应用程序中,不受平台约束,便于测试
h2支持运行三种模式
- Embedded (嵌入式) : 无需配置本地(或远程)数据库 ; 数据库连接关闭时,数据与表结构依然存在;
- In-Memory (内存模式): 同上,区别:数据库连接关闭时,数据与表结构删除;
- ServerMode(传统模式) : 需要配置本地(或远程)数据库;
在sample上面配置h2, 跳了很多该跳和不该条的坑,解决了一些疑问,也有些我不会解决,下面我都列出来。
在sample上面配置h2-database 并测试CRUD操作主要步骤:
- 在
pom.xml
中添加h2
和spring-data-jpa
的依赖 - 在
applicatoin.yml
中配置datasource
和h2-datasource
相关属性 - 编写相关测试实体类
- 编写测试类
具体实现:
- 添加依赖
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
解释: <scope>test<scope>
: 在测试时引入依赖,其他选项: runtime
运行时.
- 在
application.yml
中添加属性
spring:
h2:
console:
enabled: true #开启web端 h2-console ,此项目访问路径为: localhost/h2-console
#path: 此处可以修改默认的/h2-console为其他路径
官方: URL规则
- 编写 实体类 User
@Entity
public class User {
@Id
@GeneratedValue()
private long id;
private String name;
---省略getter setter
}
- 在
SaiOAuth2LoginConfiguration.java
中添加配置
.authorizeRequests()
.antMatchers("/h2-console/**").permitAll() //允许通过
.anyRequest().permitAll()
.and()
.csrf().ignoringAntMatchers("/h2-console/**") //跨站请求伪造拦截忽略
.and()
.headers().frameOptions().disable() // 关闭x-frame检测
如果没有以上配置,Spring Security 安全认证会拦截/h2-console
启动~ 成功~
image.pngimage.png
发现数据库中已经有了我们的USER表了。Magic~
网友评论