成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

springboot如何新建aop切面

springboot如何新建aop切面,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了察哈爾右翼中旗免費建站歡迎大家使用!

springboot引入AOP

主要是分為以下幾步:

  1. 引入相關(guān)的依賴

  2. 新建一個切面

  3. 編寫相應(yīng)的切點和通知

引入相關(guān)的依賴

除了web的包之外,還需要引一個aop相關(guān)的starter相關(guān)的包

  
    
  
  
  compile group: 'org.springframework.boot', name: 'spring-boot-starter-aop', version: '2.2.0.RELEASE'

新建切面

通俗來講,一個切面有兩個部分組成
1是對哪些方法做修改,加強,注入等等,都是一個意思
2是對這些方法做什么樣的修改,執(zhí)行前,執(zhí)行后,執(zhí)行前后等等

  
    
  
  
  
/** * 聲明一個切面,只用加一個@Aspect注解就可以了 * 還有個注解@Component是聲明這個類為Spring的bean */@Aspect@Componentpublic class TestAspect {
/**     * 切面的組成部分之一,告訴程序要對哪些方法進行操作     * 在本DEMO中直接指定了一個方法,推薦后續(xù)用注解的方式去找方法     * 在現(xiàn)在注解盛行的時代,這樣根據(jù)方法名去找方法的用處已經(jīng)不多了     * 更多的是通過某個注解去找到對應(yīng)的方法,后續(xù)也會有DEMOb出來     */@Pointcut("execution(public * cloud.javastudy.demo.controller.TestController.testAspect(..))")public void testPointcut(){}
/**     * 對找到的方法進行修改     * 有@Around,對方法執(zhí)行前后進行修改     * 有@Before, 在方法執(zhí)行前進行修改     * 有@After,  在方法執(zhí)行后進行修改     * 有@AfterReturning, 在方法返回后進行修改     * 有@AfterThrowing, 在方法拋出異常后修改     * 常用的是@Around,常用于對方法體加 Try-catch,對方法執(zhí)行計時,對方法入?yún)?,返回做日志記錄等?/code>     */@Around("testPointcut()")public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {        System.out.println("before pointcut");        Object proceed = joinPoint.proceed();        System.out.println("after pointcut");return proceed;    }}
           

被測試的方法

  
    
  
  
  
package cloud.javastudy.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;
@RestControllerpublic class TestController {
/**     * 測試被切面的方法     * @return     */    @RequestMapping("test/testAspect")    public String testAspect(){System.out.println("in method");return "OK";    }}
           

結(jié)果輸出:
springboot如何新建aop切面

AOP是spring的兩大特性之一,相對比于以前spring用xml復雜的聲明,在springboot中使用aop只用引一個依賴,新建一個切面類就可以解決了, 簡單的demo很簡單,真正使用還是要好好琢磨下,如在使用Around時,復雜的邏輯要記得新開一個子線程來處理,我就曾經(jīng)在記錄redis的key命中時,因為是沒有異步記錄,導致redis出奇的慢,加油吧少年!

看完上述內(nèi)容,你們掌握springboot如何新建aop切面的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

本文標題:springboot如何新建aop切面
轉(zhuǎn)載注明:http://jinyejixie.com/article14/joggge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、虛擬主機、移動網(wǎng)站建設(shè)、網(wǎng)站維護、網(wǎng)站設(shè)計公司、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

西藏| 儋州市| 偃师市| 富阳市| 隆安县| 乌兰县| 巢湖市| 上虞市| 左云县| 嘉义市| 福泉市| 晴隆县| 蓬莱市| 油尖旺区| 平顺县| 海南省| 龙海市| 肃北| 寻乌县| 定西市| 长兴县| 乐至县| 石家庄市| 信宜市| 开封县| 兴安县| 石楼县| 于都县| 德庆县| 万安县| 翁源县| 武隆县| 江津市| 宁陵县| 阳山县| 汝阳县| 四子王旗| 龙井市| 北宁市| 曲阳县| 衡山县|