平常遇见的栈溢出无非就两种
第一种:
service层忘加@service注解或者@Autowired注解了
第二种:
就是当多个实体类之间有多对一、多对多 关系时,重写toString方法的时候一定要注意,不要两个有对应关系的实体类都重写相关联属性字段的toString方法,这样会导致一直递归重写下去,内存当然会被耗尽,导致栈溢出
最近我在写一个博客项目的时候,遇到了栈溢出,报错如下:
很明显这是Thymeleaf模板渲染出错才导致的栈溢出(毕竟第一次见,以前从来没见过Thymeleaf模板出错导致栈溢出的,并且网上也没有人发过因为Thymeleaf模板渲染出错导致栈溢出错误类似的博文),然后我还是以为是因为第二种情况重写toString方法导致的错误,最后就一直在改实体类,根据网上所说的,加各种各样的注解:@Jsonigonre、@toString(excloud = {""}),然而并没有什么卵用。
然后我就让一个大佬看了下错误日志,他说就是thymeleaf模板渲染出的序错,让我仔细找找,果然我竟然找到了,真实粗心,出错的地方如下:
很明显:title标签里面多replace了一下,才导致出的错,因为title标签在公有的模板中已经配置好了,不用加了,如果加了,就导致会一直递归的替换该片段,所以才导致内存耗尽,出现栈溢出
公有片段如下:
如果你们也遇到了类似的问题,希望能够帮到你们