国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot配置攔截器的示例

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

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

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

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

public class MyInterceptor implements HandlerInterceptor { //controller執(zhí)行之前 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println('preHandler......'); return true; } //執(zhí)行完controller執(zhí)行之后、視圖渲染前調(diào)用,可以在該方法里獲取或者修改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'; }}

測試結(jié)果:

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比較相似,但是可以發(fā)現(xiàn),該攔截器的preHandler返回值為空,說明該方法并不影響后面方法的執(zhí)行。那么這個攔截器存在的目的是什么吶?

點進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();

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

以上就是SpringBoot配置攔截器的示例的詳細內(nèi)容,更多關(guān)于SpringBoot配置攔截器的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 日本亚洲欧美在线 | 中国黄色一级大片 | 欧美日韩在线播一区二区三区 | 99视频在线观看免费 | freesex寂寞老妇hd | 亚洲精品美女在线观看 | 成人在线一区二区三区 | 亚洲精品手机在线 | 性久久久久久 | 天天摸天天爽视频69视频 | 欧美男女网站 | 国产男女爽爽爽爽爽视频 | 精品国产90后在线观看 | 欧美一级爱操视频 | 毛片免费在线 | 日本成a人片在线观看网址 日本成年人视频网站 | 女人被男人躁得好爽免费视频免费 | 91久久精品国产91性色tv | 国产三级a三级三级午夜 | 国内精品久久久久久野外 | 亚洲黄色成人 | 国内成人精品亚洲日本语音 | 最新国产美女一区二区三区 | 国产午夜a理论毛片在线影院 | 免费观看一级欧美在线视频 | 精品免费久久 | 扒开双腿猛进入爽爽在线观看 | 日韩在线一区二区三区 | 午夜精品久久久久久毛片 | 狠狠色婷婷丁香综合久久韩国 | 精品国产理论在线观看不卡 | 性欧美在线 | 国产三级在线免费 | 亚洲视频免费播放 | 男人的天堂久久爱 | 午夜三级毛片 | 91欧美视频 | 亚洲一区在线免费观看 | 国产一级一级一级国产片 | 亚洲影院中文字幕 | 精品国产三级在线观看 |