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有没有开关来控制这种内存溢出情况。
4821843
12 years, 3 months ago