成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Resultful API的攔截(切片Aspect)

huaixiaoz / 2563人閱讀

摘要:目錄一的攔截三種方式二切片的演示示例項目三切片特點四過濾器攔截器切面起作用的順序五當控制層即層的方法拋異常時,過濾器攔截器切面拋異常的順序一的攔截三種方式過濾器攔截器切片二切片的演示示例項目自定義一個名稱為的切片,代碼

一、Resultful API的攔截三種方式

  • 過濾器(Filter)
  • 攔截器(Interceptor)
  • 切片(Aspect)

二、切片(Aspect)的演示示例(springboot項目)

1、自定義一個名稱為TimeAspect的切片,代碼如下:

package com.xz.springsecuritydemo.aspect;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.*;import org.springframework.stereotype.Component;import java.util.Date;@Aspect//聲明切面@Component//注入到容器public class TimeAspect {    //什么時候起作用 使用注解,例如@Before()、 @After()、@AfterThrowing()、@AfterReturning()、@Around()    //在哪些方法上啟作用,在注解中使用表達式    /**     * execution 表示執(zhí)行     * 第一個* 表示任何的返回值     * com.xz.springsecuritydemo.modules.sys.controller.SysQueryController 要攔截的類     * .* 表示SysQueryController類中任何一個方法     * (..) 表示SysQueryController類中任何一個方法的任何一個參數(shù)     * ProceedingJoinPoint 參數(shù)表示當前攔截方法的信息對象     */    @Around("execution(* com.xz.springsecuritydemo.modules.sys.controller.SysQueryController.*(..))")    public Object handleConrtollerMethod(ProceedingJoinPoint pjp) throws Throwable {        System.out.println("time aspect start");        //獲取方法的參數(shù)        Object[] args = pjp.getArgs();        for (Object arg:args){            System.out.println("方法的參數(shù):"+arg);        }        long startTime = new Date().getTime();        Object proceed = pjp.proceed();        System.out.println("aspect 耗時:"+(new Date().getTime()-startTime));                System.out.println("time aspect end");        return proceed;    }}

2、自定義一個控制類,代碼如下:

@RestController//表示此Controller提供RestAPIpublic class SysQueryController {   /**     * @RequestMapping  映射http請求url到j(luò)ava方法     * @RequestParam    映射請求參數(shù)到j(luò)ava方法的參數(shù)     */    @RequestMapping(value = "/user1",method = RequestMethod.GET)    public void query1(@RequestParam String username){        System.out.println("query1====="+username);    } }

3、測試步驟

  • 啟動項目,如下圖:

  • 再用postman測試工具發(fā)送請求,如下圖:

  • 最后查看控制態(tài)輸出信息,如下圖:

    time aspect start方法的參數(shù):xzquery1=====xzaspect 耗時:1time aspect end

5、輸出第4步的內(nèi)容表示自定義的切片Aspect攔截器成功。

三、切片(Aspect)特點

  • 由上面的示例可知:切片(Aspect)獲取不到原始的http請求和響應(yīng)的信息,但是可以獲取到真正處理請求的方法的參數(shù)值

四、Filter過濾器、Interceptor攔截器 、Aspect切面 起作用的順序

  • 先是Filter過濾器起作用
  • 然后Interceptor攔截器起作用
  • 然后Aspect切面起作用
  • 最后進入Controller方法中

五、當控制層(即Controller層)的方法拋異常時,F(xiàn)ilter過濾器、Interceptor攔截器 、Aspect切面 拋異常的順序

  • 先是Aspect切面
  • 如果使用@ControllerAdvice自定義異常,再進入這個處理異常類
  • 然后Interceptor攔截器
  • 然后Filter過濾器
  • 如果都沒處理,最后到tomcat

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/119357.html

相關(guān)文章

  • Resultful API攔截(過濾器——Filter)

    摘要:四過濾器攔截器切面起作用的順序先是過濾器起作用然后攔截器起作用然后切面起作用最后進入方法中五當控制層即層的方法拋異常時,過濾器攔截器切面拋異常的順序先是切面如果使用自定義異常再進入這個處理異常類然后攔截器然后過濾器如果都沒處理,最后到 ...

    ckllj 評論0 收藏0
  • 分享筆記:SpringBoot三種攔截服務(wù)【Filter,Interceptor,Aspect

    摘要:攔截服務(wù)一使用第三方過濾器直接加入項目攔截服務(wù)二使用自定義攔截器攔截服務(wù)三使用切片完結(jié) Spring攔截服務(wù)【一】(SpringBoot使用第三方過濾器Filter直接加入項目) Spring攔截服務(wù)【二】(SpringBoot使用自定義攔截器Interceptor) Spring攔截服務(wù)【三】(SpringBoot使用切片Aspect)【完結(jié)】

    qujian 評論0 收藏0
  • 像@Transactional一樣利用注解自定義aop切片

    摘要:像一樣利用注解自定義切片在中,利用注解可以很輕松的利用技術(shù)進行事物管理。表明該注解在運行時也是有效的。其中用來聲明切片的實現(xiàn)。在這個代碼里面,最關(guān)鍵的一步是這個聲明與普通的注解式聲明切片類似,只是其中表明該切片作用范圍為聲明的注解作用范圍。 像@Transactional一樣利用注解自定義aop切片 在spring中,利用@Transactional注解可以很輕松的利用aop技術(shù)進行事...

    zhangke3016 評論0 收藏0
  • 【好好面試】手把手調(diào)試,教你分析Spring-Aop

    摘要:思考之所以會選擇為切入點,是因為通過命名可以看出這是用來構(gòu)建代理強化對象的地方,并且由于是先將目標類加載到內(nèi)存中,之后通過修改字節(jié)碼生成目標類的子類,因此我猜測強化是在目標類實例化后觸發(fā)的時候進行的。 【干貨點】 此處是【好好面試】系列文的第11篇文章。看完該篇文章,你就可以了解Spring中Aop的相關(guān)使用和原理,并且能夠輕松解答Aop相關(guān)的面試問題。更重要的是,很多人其實一看源碼就...

    aervon 評論0 收藏0
  • 學Aop?看這篇文章就夠了!??!

    摘要:又是什么其實就是一種實現(xiàn)動態(tài)代理的技術(shù),利用了開源包,先將代理對象類的文件加載進來,之后通過修改其字節(jié)碼并且生成子類。 在實際研發(fā)中,Spring是我們經(jīng)常會使用的框架,畢竟它們太火了,也因此Spring相關(guān)的知識點也是面試必問點,今天我們就大話Aop。特地在周末推文,因為該篇文章閱讀起來還是比較輕松詼諧的,當然了,更主要的是周末的我也在充電學習,希望有追求的朋友們也盡量不要放過周末時...

    boredream 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<