报错的行数是一个scnner的next,本来和老师讨论了半天没有什么头绪,错误的原因是,因为找不到下一个元素,然后,如果把上一个函数中操作system.in的函数注释掉,就不会出现问题。后来,老师一问,就是因为在上面函数的时候,我将system手动关闭掉了,系统资源不同于文件,一旦关闭就不能再打开,这就是问题的原因。系统资源一旦释放就不能再开启了,所以只有确定不在使用系统的时候,才能将流关闭。原因是由于拦截器加载的时间点在springcontext之前,所以在拦截器中注入为null。知道拦截器执行在bean实例化前执行的,那么我们就让拦截器执行的时候实例化拦截器Bean,在拦截器配置类里面先实例化拦截器,然后再获取在WebMvcConfigurer的实现类中给容器实例化拦截器就解决啦。
暂无评论