springboot 项目无端报错,寻根究底
虽然项目代码未经修改,但今天启动时却突然抛出无法解释的错误:
creating a new sqlsession sqlsession [org.apache.ibatis.session.defaults.defaultsqlsession@2dbe837b] was not registered for synchronization because synchronization is not active
困惑不已,因为并没有任何错误的代码。然而,仔细检查却发现了一个关键点:此错误指向了一个 mybatis 相关的问题。
深入考察 spring boot 项目的配置,发现 mybatis-plus 的相关配置:
mybatis-plus: config-location: classpath:mybatis/mybatis-config.xml mapper-locations: classpath:mybatis/mapper/*.xml
尝试在网上寻找答案,不少文章提到了代码错误导致的类似错误。然而,仔细审阅代码后,并没有发现任何错误。
进一步探寻,发现了一篇博文(https://blog.csdn.net/web1829...),指出该错误可能是由于 mybatis-plus 的版本和 spring boot 版本不兼容造成的。
根据博文的建议,升级 spring boot 版本至 2.5.5,并重新编译项目。令人惊喜的是,错误消失,项目得以正常运行。
由此可见,即使项目未经修改,配置中的兼容性问题也可能导致看似莫名其妙的错误。所以,遇到此类问题时,要从代码以外的角度思考,如检查配置、库版本等方面,才能有效解决问题。
在IntelliJ IDEA中使用快捷键修改POM文件依赖版本时生成新的repository标签而不是直接修改版本号的原因可能与IDE的自动补全和依赖管理机制有关。以下是一些可能的原因和解决方法:依赖管理机制:IntelliJ IDEA可能会尝试从不同的存储库中查找指定版本的依赖。如果指定的版本在当前配置的存储库中找不到,IDE可能会自动添加新的存储库以确保可以下载到所需的版本。快捷键功能限制:某些快捷键可能只负责版本号的快速修改,而不处理存储库的管理。当你使用快捷键时,IDE可能会默认添加新的存储库以确
Java框架的优点和发展趋势是什么?
Java框架和F#框架在金融领域的优势
Java函数式编程对数据处理的革命性影响
JNA调用C++ DLL时如何避免异常导致JVM崩溃?
Android RecyclerView数据更新后视图不刷新,如何解决?