AgileBoot - 如何集成内置数据库H2和内置Redis

背景介绍

为什么我们需要内置的数据库和Redis呢?

优点:

  • 内置的数据库H2,可以让我们在无依赖数据库的情况下,做集成测试。比如我们想测试添加一个学生到数据库,就需要启动一台数据库来验证结果。然而使用H2内置数据库的话,就可以在无依赖数据库的情况下,进行验证。
  • 数据库H2是内存级的,如果有大量集成测试(IT:Integration Test)的话,可以缩短测试时间。
  • Embedded Redis同上,使我们在无依赖Redis的情况下,做测试。
  • 还有一个小优点,就是对于新手或者不熟悉后端的前端小伙伴来说,他们在可以不配置Mysql和Redis就直接把整个项目run起来~

缺点:

  • H2并不能兼容所有数据库的功能,比如函数,或者一些特殊索引之类的。使用H2的话,Mysql的表结构不能直接导入,需要做一些调整。
  • Embeded Redis同样不能完全兼容真正的Redis, 一些特殊用法可能会出错。

引入H2数据库代码实现

1.引入内置的H2数据库

因为我想做到使用H2直接启动项目,所以scope设置为runtime,如果仅用H2做测试用的话,请设置成test

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>
2.yml文件内数据库的配置,改成H2
# 数据源配置
spring:
    datasource:
        #  驱动
        driver-class-name: org.h2.Driver
        # h2 内存数据库 内存模式连接配置 库名: agileboot
        url: jdbc:h2:mem:agileboot;DB_CLOSE_DELAY=-1
        h2:
            # 开启console 访问 默认false
            console:
                enabled: true
                settings:
                    #      开启h2 console 跟踪 方便调试  默认 false
                    trace: true
                    #      允许console 远程访问 默认false
                    web-allow-others: true
                #  h2 访问路径上下文
                path: /h2-console

    sql:
        init:
            platform: mysql
            # 初始化数据
            schema-locations: classpath:h2sql/agileboot_schema.sql
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值