Java-Mybatis中Mapper文件过多,引起java.lang.StackOverflowError

发布于 2016-10-12 14:47:31 字数 362 浏览 1538 评论 2

Spring3.1+Mybatis3.1,并且使用了mybatis-spring-1.1.0。
起初构建系统没有问题,
但是系统开发过程中,Tomcat启动时会报java.lang.StackOverflowError错误。
经过初步调查应该是Mapper文件数量增多导致的,合并了一些Mapper后Tomcat便启动正常了。
个人判断应该是每个Mapper会生成一个实例导致内存溢出,但是StackOverflowError明显是栈溢出异常,而不是堆溢出异常,所以和实例多少好像没有关系。
但是这种临时方案不能解决随着系统扩大而不断增加的Mapper数量的问题。
请教各位,有没有比较官方的解决方案,Mybatis有没有开关来控制这种内存溢出情况。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清晨说ぺ晚安 2017-10-07 11:59:44

设置 -Xss1024k 试试

夜无邪 2017-08-25 18:11:23

该mapper是当作持久代放入内存中的

参数调优的话需要设置
-XX:MaxPermSize
这个值默认是物理内存的1/4可以适当调高该值试试

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文