Java-Mybatis中Mapper文件过多,引起java.lang.StackOverflowError
Spring3.1+Mybatis3.1,并且使用了mybatis-spring-1.1.0。
起初构建系统没有问题,
但是系统开发过程中,Tomcat启动时会报java.lang.StackOverflowError错误。
经过初步调查应该是Mapper文件数量增多导致的,合并了一些Mapper后Tomcat便启动正常了。
个人判断应该是每个Mapper会生成一个实例导致内存溢出,但是StackOverflowError明显是栈溢出异常,而不是堆溢出异常,所以和实例多少好像没有关系。
但是这种临时方案不能解决随着系统扩大而不断增加的Mapper数量的问题。
请教各位,有没有比较官方的解决方案,Mybatis有没有开关来控制这种内存溢出情况。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
设置 -Xss1024k 试试
该mapper是当作持久代放入内存中的
参数调优的话需要设置
-XX:MaxPermSize
这个值默认是物理内存的1/4可以适当调高该值试试