国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
spring中過(guò)濾器(filter)、攔截器(interceptor)和切面(aop)的執(zhí)行順序

轉(zhuǎn)自:https://blog.csdn.net/huxiaodong1994/article/details/82991828

1. 程序執(zhí)行的順序是先進(jìn)過(guò)濾器,再進(jìn)攔截器,最后進(jìn)切面。注意:如果攔截器中preHandle方法返回的為false時(shí),則無(wú)法進(jìn)入切面,例子如下。

@RestController@RequestMapping('/user')public class UserController { @GetMapping('/{id:\\d }') @JsonView(User.UserDetailView.class) public User getInfo(@PathVariable String id) { User user = new User(); user.setUsername('tom'); return user; }}

編寫方法的過(guò)濾器:

@Componentpublic class TimeFilter implements Filter {     /* (non-Javadoc)     * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)     */    @Override    public void init(FilterConfig filterConfig) throws ServletException {        System.out.println('time filter init');     }     /* (non-Javadoc)     * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)     */    @Override    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)            throws IOException, ServletException {        System.out.println('time filter start');        long start = new Date().getTime();        chain.doFilter(request, response);        System.out.println('time filter:'  (new Date().getTime() - start));        System.out.println('time filter finish');     }     /* (non-Javadoc)     * @see javax.servlet.Filter#destroy()     */    @Override    public void destroy() {        System.out.println('time filter destroy');     }}

編寫方法的攔截器:

@Componentpublic class TimeInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println('preHandle'); System.out.println(((HandlerMethod)handler).getBean().getClass().getName()); System.out.println(((HandlerMethod)handler).getMethod().getName()); request.setAttribute('startTime', new Date().getTime()); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println('postHandle'); Long start = (Long)request.getAttribute('startTime'); System.out.println('time interceptor 耗時(shí):' (new Date().getTime() - start)); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println('afterCompletion'); Long start = (Long) request.getAttribute('startTime'); System.out.println('time interceptor 耗時(shí):' (new Date().getTime() - start)); System.out.println('ex is ' ex); } }

編寫方法的切面:

@Aspect@Componentpublic class TimeAspect {     @Before('execution(public * com.hu.web.controller.UserController.*(..))')    public Object handlerControllerMethod() throws Throwable {        System.out.println('time aspect start');                    return new Object();    }}

運(yùn)行結(jié)果:1、當(dāng)攔截器中preHandle的方法返回為true時(shí):`

time filter startpreHandlecom.hu.web.controller.UserController$$EnhancerBySpringCGLIB$$b0bb0dcfgetInfotime aspect startpostHandletime interceptor 耗時(shí):76afterCompletiontime interceptor 耗時(shí):76ex is nulltime filter:92time filter finishtime filter starttime filter:46time filter finish

2、當(dāng)攔截器中preHandle的方法返回為false時(shí):

time filter startpreHandlecom.hu.web.controller.UserController$$EnhancerBySpringCGLIB$$b0bb0dcfgetInfotime filter:12time filter finishtime filter starttime filter:23time filter finish

2. 當(dāng)程序有異常拋出時(shí),回先進(jìn)入切面,然后在進(jìn)入自定義的ControllerAdvice中。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
springmvc系列第3篇:springmvc攔截器
過(guò)濾器與攔截器的區(qū)別
Spring MVC的攔截器
通過(guò)struts2攔截器實(shí)現(xiàn)權(quán)限管理
過(guò)濾器和攔截器的比較及未登錄用戶權(quán)限限制的實(shí)現(xiàn)
攔截器和過(guò)濾器的區(qū)別(轉(zhuǎn))
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服