亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

SpringBoot配置攔截器的示例

瀏覽:4日期:2023-04-10 16:47:56

在SpringBoot中配置攔截器,主要有下面兩個步驟:

1、繼承接口 HandlerInterceptor,根據需要重寫其中的三個類。

2、在配置類中注入該類。

public class MyInterceptor implements HandlerInterceptor { //controller執行之前 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println('preHandler......'); return true; } //執行完controller執行之后、視圖渲染前調用,可以在該方法里獲取或者修改model @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println('postHandler......'); } //一般用于清理資源 @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println('afterCompletion......'); }}

@Configurationpublic class WebMvcConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { //1、全部攔截// registry.addInterceptor(myInterceptor()).addPathPatterns('/**'); //2、攔截指定路徑 registry.addInterceptor(myInterceptor()).addPathPatterns('/hello'); } @Bean MyInterceptor myInterceptor(){ return new MyInterceptor(); }}

寫個controller測試一下

@RestControllerpublic class HelloController { @RequestMapping('/hello') public String hello(){ System.out.println('hello'); return 'hello'; } @RequestMapping('/world') public String world(){ System.out.println('world'); return 'world'; }}

測試結果:

preHandler......hellopostHandler......afterCompletion......world

SpringBoot中還有一終攔截器,WebRequestInterceptor

public class MyWebRequestInterceptor implements WebRequestInterceptor { @Override public void preHandle(WebRequest webRequest) throws Exception { } @Override public void postHandle(WebRequest webRequest, ModelMap modelMap) throws Exception { } @Override public void afterCompletion(WebRequest webRequest, Exception e) throws Exception { }}

和HandlerInterceptor比較相似,但是可以發現,該攔截器的preHandler返回值為空,說明該方法并不影響后面方法的執行。那么這個攔截器存在的目的是什么吶?

點進WebRequest:

public interface WebRequest extends RequestAttributes { @Nullable String getHeader(String var1); @Nullable String[] getHeaderValues(String var1); Iterator<String> getHeaderNames(); @Nullable String getParameter(String var1); @Nullable String[] getParameterValues(String var1); Iterator<String> getParameterNames(); Map<String, String[]> getParameterMap(); Locale getLocale(); String getContextPath(); @Nullable String getRemoteUser(); @Nullable Principal getUserPrincipal(); boolean isUserInRole(String var1); boolean isSecure();

發現對reques請求中參數做了進一步處理(@Nullable表示可以為空),更加的方便調用。所以兩個攔截器的側重點不同,HandlerInterceptor功能較為強大,可以攔截請求,可以實現WebRequestInterceptor的所有功能,只是要寫的邏輯代碼要多一點。更而WebRequestInterceptor傾向于簡化獲取request參數的過程以及預設參數供后面的流程使用。

以上就是SpringBoot配置攔截器的示例的詳細內容,更多關于SpringBoot配置攔截器的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
主站蜘蛛池模板: 久久黄色大片 | 尤物视频在线观看免费 | 小明台湾成人永久免费看看 | 一级黄色片在线播放 | 亚洲欧美日韩中文综合在线不卡 | 色 综合 欧美 亚洲 国产 | 久色tv| 妖精www视频在线观看高清 | 欧美人与鲁交大毛片免费 | 精精国产xxxx视频在线 | 精品区在线观看 | 精品哟啊呦v视频在线观看 精品哟哟国产在线观看 | 美国一级毛片完整高清 | 国产高清色播视频免费看 | 国产亚洲综合久久 | 老外一级毛片免费看 | 国产三级网站 | 日本xxxx色视频在线观看 | 精品一区二区三区在线观看 | 99久久久精品免费观看国产 | 91短视频免费版 | 国产日韩欧美二区 | 中日韩毛片 | 欧美精品第二页 | 亚洲国产资源 | 天干天干天啪啪夜爽爽99 | 91精品国产人成网站 | 黄色片在线免费播放 | 一级做a毛片免费视频 | 欧美日韩午夜精品不卡综合 | 欧美黄免在线播放 | 国产精品夜色视频一级区 | 国产在线小视频 | 加勒比色老久久爱综合网 | 乱淫毛片 | 久久综合成人网 | 毛片亚洲毛片亚洲毛片 | 三极片免费看 | 大陆1区二区三区 | 成人综合网站 | 国产综合日韩伦理 |