欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

springboot如何新建aop切面

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

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

springboot引入AOP

主要是分為以下幾步:

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

  2. 新建一個(gè)切面

  3. 編寫(xiě)相應(yīng)的切點(diǎn)和通知

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

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

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

新建切面

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

  
    
  
  
  
/** * 聲明一個(gè)切面,只用加一個(gè)@Aspect注解就可以了 * 還有個(gè)注解@Component是聲明這個(gè)類(lèi)為Spring的bean */@Aspect@Componentpublic class TestAspect {
/**     * 切面的組成部分之一,告訴程序要對(duì)哪些方法進(jìn)行操作     * 在本DEMO中直接指定了一個(gè)方法,推薦后續(xù)用注解的方式去找方法     * 在現(xiàn)在注解盛行的時(shí)代,這樣根據(jù)方法名去找方法的用處已經(jīng)不多了     * 更多的是通過(guò)某個(gè)注解去找到對(duì)應(yīng)的方法,后續(xù)也會(huì)有DEMOb出來(lái)     */@Pointcut("execution(public * cloud.javastudy.demo.controller.TestController.testAspect(..))")public void testPointcut(){}
/**     * 對(duì)找到的方法進(jìn)行修改     * 有@Around,對(duì)方法執(zhí)行前后進(jìn)行修改     * 有@Before, 在方法執(zhí)行前進(jìn)行修改     * 有@After,  在方法執(zhí)行后進(jìn)行修改     * 有@AfterReturning, 在方法返回后進(jìn)行修改     * 有@AfterThrowing, 在方法拋出異常后修改     * 常用的是@Around,常用于對(duì)方法體加 Try-catch,對(duì)方法執(zhí)行計(jì)時(shí),對(duì)方法入?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;    }}
           

被測(cè)試的方法

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

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

AOP是spring的兩大特性之一,相對(duì)比于以前spring用xml復(fù)雜的聲明,在springboot中使用aop只用引一個(gè)依賴(lài),新建一個(gè)切面類(lèi)就可以解決了, 簡(jiǎn)單的demo很簡(jiǎn)單,真正使用還是要好好琢磨下,如在使用Around時(shí),復(fù)雜的邏輯要記得新開(kāi)一個(gè)子線(xiàn)程來(lái)處理,我就曾經(jīng)在記錄redis的key命中時(shí),因?yàn)槭菦](méi)有異步記錄,導(dǎo)致redis出奇的慢,加油吧少年!

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

本文標(biāo)題:springboot如何新建aop切面
轉(zhuǎn)載注明:http://www.chinadenli.net/article14/joggge.html

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

廣告

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