新增内存数据库(In-Memory)h2-database支持

内存数据库h2-Database 简介:

详情点击 h2-database 官网

h2-Database 由纯 Java 编写的开源内存数据库,可以直接嵌入到应用程序中,不受平台约束,便于测试

h2支持运行三种模式

  • Embedded (嵌入式) : 无需配置本地(或远程)数据库 ; 数据库连接关闭时,数据与表结构依然存在;
  • In-Memory (内存模式): 同上,区别:数据库连接关闭时,数据与表结构删除;
  • ServerMode(传统模式) : 需要配置本地(或远程)数据库;

在sample上面配置h2, 跳了很多该跳和不该条的坑,解决了一些疑问,也有些我不会解决,下面我都列出来。


在sample上面配置h2-database 并测试CRUD操作主要步骤:
  1. pom.xml中添加h2spring-data-jpa的依赖
  2. applicatoin.yml中配置datasourceh2-datasource 相关属性
  3. 编写相关测试实体类
  4. 编写测试类
具体实现:
  • 添加依赖
        
            com.h2database
            h2
            test
        
        
            org.springframework.boot
            spring-boot-starter-data-jpa
        

解释: test: 在测试时引入依赖,其他选项: 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

启动~ 成功~
新增内存数据库(In-Memory)h2-database支持_第1张图片
image.png

新增内存数据库(In-Memory)h2-database支持_第2张图片
image.png

发现数据库中已经有了我们的USER表了。Magic~

你可能感兴趣的:(新增内存数据库(In-Memory)h2-database支持)