spring-webmvc-5.1.7.RELEASE中HandlerInterceptor接口不重写方法不报错
对比源码
spring-webmvc-5.1.7.RELEASE中HandlerInterceptor接口
package org.springframework.web.servlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.lang.Nullable;
public interface HandlerInterceptor {
default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return true;
}
default void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
}
default void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
}
}
与旧版本4.3.7比较:
package org.springframework.web.servlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public interface HandlerInterceptor {
boolean preHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3) throws Exception;
void postHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3, ModelAndView var4) throws Exception;
void afterCompletion(HttpServletRequest var1, HttpServletResponse var2, Object var3, Exception var4) throws Exception;
}
这是为什么新版本实现HandlerInterceptor 接口时,不重写方法也不会报错,因为有default修饰;
博客对比了spring-webmvc-5.1.7.RELEASE和旧版本4.3.7中HandlerInterceptor接口。指出在新版本实现该接口时,不重写方法不会报错,原因是有default修饰。

被折叠的 条评论
为什么被折叠?



