建议在 MybatisPlusAutoConfiguration#sqlSessionFactory 中捕获并输出异常,避免出现一些诡异且难以调试的问题。
当前使用版本(必填,否则不予处理)
3.4.3.3
该问题是如何引起的?(确定最新版也有问题再提!!!)
mybatis plus 创建 sqlSessionFactory 的源码如下:
@Bean
@ConditionalOnMissionBean
MybatisPlusAutoConfiguration#sqlSessionFactory(DataSource dataSource) throws Exception {}
当 MybatisPlusAutoConfiguration 对象被成功创建,但 sqlSessionFactory() 方法调用失败后。spring 可能会多次执行 sqlSessionFactory() 方法直到执行成功,且执行出错时不抛出任何异常提示,系统正常启动。 引发的后果是 拦截器 被多次添加从而出现各种诡异的问题。 以上问题因为没有错误提示开发者很难调试。建议能在内部捕获异常,打出错误,提醒开发者。
重现步骤(如果有就写完整)
- 撰写一个错误的Mapper组件,语法要正确,能正常编译通过,如下脚本错误的添加了