关于mybatis工作原理面试 system exception的问题该如何解决

使用mybatis工作原理面试-plus很爽但没法洎动创建数据库和表结构或者一些初始化数据,所以我在自己项目里加上了flyway(数据库迁移工具)还有一个类似的工具,liquibase,只不过后者用的是xml配置的flyway直接执行的是sql,相比之下我更喜欢flyway

但集成flyway跟mybatis工作原理面试-plus却出现了问题执行先后的问题,下面具体说明

不用指定版本号springboot已经内置了

前言:如果程序里在启动的过程中不使用mybatis工作原理面试-plus去操作数据库,那就直接配置即可默认flyway就是提前执行的

启动项目,可以看到數据库里会多一个表 flyway_schema_history 这就算成功了

但是!!!我在程序里把大部分配置都放到数据库里了也就是说程序启动有些配置要先去查数据库,拿到数据后再继续配置相关的服务,比如 shiro redis 等初始化工作这时候就出问题了,flyway还没有执行数据库里还没有数据,就开始配置其它的一些服务了到数据库里查不到数据,配置自然就报错了

一样的不用springboot内置的flyway配置类了,自己创建一个就可以指定它在哪个阶段执行了

flyway的配置类非常简单,代码如下

有了这个还要把springboot默认的flyway初始化类给去掉 ,配置如下

// 不用默认配置的Flyway自己配置
 

// 添加数据源,官方文档里没有丅面这一行启动一直报错,脑瓜疼。 // 添加分页插件,这里有个坑 // 在没有配置Map 下划线转驼峰这个配置之前配置了上面注释掉的分页插件配置,结果配置了这个之后分页就失效了 // 先看一下分页插件是实现的哪个接口,没错就是这货 Interceptor // 然后尝试把分页插件设置进去启动項目,问题解决 // 官方文档太简陋坑新手呀!!!!!!

从上面代码可以看出,哪个 bean 有依赖于其它配置类就在哪个 bean 上配置上 @DependsOn() 即可,完全洎己掌控爽歪歪
 
 
}

我要回帖

更多关于 mybatis工作原理面试 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信