猿问

SpringBoot启动时序列化对象时报java.lang.StackOverflowError错

将项目改造成SpringBoot,使用了AOP切面日志,配置完之后启动项目,报java.lang.StackOverflowError错。

下面是我的AOP配置:

https://img4.mukewang.com/5cdd1ec90001f7fd08570524.jpg

打过断点,定位到报错的地方是其中的:LogInterceptor.java

https://img1.mukewang.com/5cdd1ecb0001f8b506990508.jpg

new Gson().toJson(arguments[i])往底层走,在这一步报:

https://img3.mukewang.com/5cdd1ece000187bb09160536.jpg

https://img1.mukewang.com/5cdd1ecf0001269908100231.jpg

https://img3.mukewang.com/5cdd1ed0000113f206550627.jpg

百度了很多方法,但是没有找到有效的,求大佬指点迷津!


陪伴而非守候
浏览 1331回答 5
5回答

阿晨1998

大对象实例化。切点配置了“Server”,所以切点切自己了。

守着星空守着你

你看看是不是你设置了多个AOP切面,但没设置顺序,有栈冲突。像这样规定下切面的顺序@Order(1)看你错误是数据库问题。如果你的Mysql比较高版本6以上,就设置下driver-class-name: com.mysql.cj.jdbc.Driver

慕田峪4524236

你这是不是有JavaBean不是Gson自动生成的啊。所以传递进去不能转换成JSON

慕哥9229398

首先你确定一下你所使用的日志是哪一种,springboot默认使用的日志是logback内嵌在springboot中,如果要使用别的日志需要排除logback否则就会报错。
随时随地看视频慕课网APP

相关分类

Java
我要回答