項目框架springboot2.0我寫了父類BaseController里面自動注入request和responsepublicclassBaseController{@AutowiredpublicHttpServletRequestrequest;@AutowiredpublicHttpServletResponseresponse;}IndexController都繼承BaseControllerpublicclassIndexControllerextendsBaseController{@RequestMapping("/index")publicStringindex(Modelmodel){return"index";}@RequestMapping("login")publicStringlogin()throwsServletException,IOException{request.getRequestDispatcher("/admin/index").forward(request,response);returnnull;}index頁面,沒有任何數據操作,純一個靜態頁面500TEST訪問http://localhost:9090/admin/login出現如下錯誤,循環引用導致內存溢出java.lang.StackOverflowError:nullatorg.springframework.web.context.support.WebApplicationContextUtils.currentRequestAttributes(WebApplicationContextUtils.java:312)atorg.springframework.web.context.support.WebApplicationContextUtils.access$400(WebApplicationContextUtils.java:65)atorg.springframework.web.context.support.WebApplicationContextUtils$RequestObjectFactory.getObject(WebApplicationContextUtils.java:328)atorg.springframework.web.context.support.WebApplicationContextUtils$RequestObjectFactory.getObject(WebApplicationContextUtils.java:323)atorg.springframework.beans.factory.support.AutowireUtils$ObjectFactoryDelegatingInvocationHandler.invoke(AutowireUtils.java:305)atcom.sun.proxy.$Proxy100.setAttribute(UnknownSource)atorg.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:304)atsun.reflect.GeneratedMethodAccessor95.invoke(UnknownSource)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.reflect.Method.invoke(Method.java:498)atorg.springframework.beans.factory.support.AutowireUtils$ObjectFactoryDelegatingInvocationHandler.invoke(AutowireUtils.java:305)atcom.sun.proxy.$Proxy100.setAttribute(UnknownSource)atorg.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:304)atsun.reflect.GeneratedMethodAccessor95.invoke(UnknownSource)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.reflect.Method.invoke(Method.java:498)atorg.springframework.beans.factory.support.AutowireUtils$ObjectFactoryDelegatingInvocationHandler.invoke(AutowireUtils.java:305)atcom.sun.proxy.$Proxy100.setAttribute(UnknownSource)atorg.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:304)atsun.reflect.GeneratedMethodAccessor95.invoke(UnknownSource)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.reflect.Method.invoke(Method.java:498)atorg.springframework.beans.factory.support.AutowireUtils$ObjectFactoryDelegatingInvocationHandler.invoke(AutowireUtils.java:305)atcom.sun.proxy.$Proxy100.setAttribute(UnknownSource)atorg.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:304)atsun.reflect.GeneratedMethodAccessor95.invoke(UnknownSource)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.reflect.Method.invoke(Method.java:498)1.注意看我的login就使用request轉發到首頁(注意,此時request和response是父類的BaseController)注意問題不是地址循環跳引發的問題3.使用方法注入request和response就不會有問題@RequestMapping("login")publicStringlogin(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.getRequestDispatcher("/admin/index").forward(request,response);returnnull;}有沒有大佬解釋一波。
非常詭異的內存溢出,希望有大佬教育一波
FFIVE
2019-05-10 09:39:45