日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

Spring AOP注解案例及基本原理詳解

瀏覽:22日期:2023-08-31 08:05:42

切面:Aspect

切面=切入點(diǎn)+通知。在老的spring版本中通常用xml配置,現(xiàn)在通常是一個(gè)類帶上@Aspect注解。切面負(fù)責(zé)將 橫切邏輯(通知) 編織 到指定的連接點(diǎn)中。

目標(biāo)對(duì)象:Target

將要被增強(qiáng)的對(duì)象。

連接點(diǎn):JoinPoint

可以被攔截到的程序執(zhí)行點(diǎn),在spring中就是類中的方法。

切入點(diǎn):PointCut

需要執(zhí)行攔截的方法,也就是具體實(shí)施了橫切邏輯的方法。切入點(diǎn)的規(guī)則在spring中通過(guò)AspectJ pointcut expression language來(lái)描述。

切入點(diǎn)與連接點(diǎn)的區(qū)別:連接點(diǎn)是所有可以被'切'的點(diǎn);切入點(diǎn)是真正要切的點(diǎn)。

通知:Advice

針對(duì)切入點(diǎn)的橫切邏輯,包含“around”、“before”和“after”等不同類型的通知。

通知的作用點(diǎn)如其命名:

before:在切入點(diǎn)之前執(zhí)行 after:在切入點(diǎn)之后執(zhí)行 around:在切入點(diǎn)攔截方法,自定義前后,更靈活

還有一些異常處理的通知,這里不一一舉例

織入:Weaving

將切面和目標(biāo)對(duì)象連接起來(lái),創(chuàng)建代理對(duì)象的過(guò)程。spring中用的是動(dòng)態(tài)代理。假如目標(biāo)對(duì)象有接口,使用jdk動(dòng)態(tài)代理;否則使用cglib動(dòng)態(tài)代理。

說(shuō)了這么多概念,看看代碼實(shí)現(xiàn)可能會(huì)使讀者理解的更深刻一些,這里簡(jiǎn)單寫一個(gè)通過(guò)注解增強(qiáng)方法的AOP-Demo。首先是切面類:

package com.example.demo.aop;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.*;import org.springframework.stereotype.Component;/** * @author Fcb * @date 2020/6/20 * @description 切面類=切入點(diǎn)+通知 */@Aspect@Componentpublic class LogAspect { //這個(gè)方法定義了切入點(diǎn) @Pointcut('@annotation(com.example.demo.aop.anno.MyLog)') public void pointCut() {} //這個(gè)方法定義了具體的通知 @After('pointCut()') public void recordRequestParam(JoinPoint joinPoint) { for (Object s : joinPoint.getArgs()) { //打印所有參數(shù),實(shí)際中就是記錄日志了 System.out.println('after advice : ' + s); } } //這個(gè)方法定義了具體的通知 @Before('pointCut()') public void startRecord(JoinPoint joinPoint) { for (Object s : joinPoint.getArgs()) { //打印所有參數(shù) System.out.println('before advice : ' + s); } } //這個(gè)方法定義了具體的通知 @Around('pointCut()') public Object aroundRecord(ProceedingJoinPoint pjp) throws Throwable { for (Object s : pjp.getArgs()) { //打印所有參數(shù) System.out.println('around advice : ' + s); } return pjp.proceed(); }}

注解:

package com.example.demo.aop.anno;import java.lang.annotation.*;/** * @author Fcb * @date 2020/6/20 * @description */@Documented@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD, ElementType.TYPE})public @interface MyLog {}

目標(biāo)類:

package com.example.demo.aop.target;import com.example.demo.aop.anno.MyLog;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;/** * @author Fcb * @date 2020/6/20 * @description */@RestControllerpublic class MockController { @RequestMapping('/hello') @MyLog public String helloAop(@RequestParam String key) { System.out.println('do something...'); return 'hello world'; }}

最后是測(cè)試類:

package com.example.demo.aop.target;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;/** * @author Fcb * @date 2020/6/20 * @description */@SpringBootTestclass MockControllerTest { @Autowired MockController mockController; @Test void helloAop() { mockController.helloAop('aop'); }}

控制臺(tái)結(jié)果:

around advice : aopbefore advice : aopdo something...after advice : aop

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
极品av在线| 日韩一区二区三区高清在线观看| 免费观看在线综合| 国产婷婷精品| 视频在线观看一区| 国产精品流白浆在线观看| 97精品国产一区二区三区| 亚洲一级影院| 日韩美女精品| 中国字幕a在线看韩国电影| 欧美日韩少妇| 日本欧美韩国一区三区| 久久三级中文| 婷婷综合社区| 亚洲精品影视| 91亚洲国产高清| 久久福利精品| 国产精品夜夜夜| 久久精品主播| 少妇高潮一区二区三区99| 精品精品99| 美女国产一区| 国产精品视频一区视频二区| 天堂日韩电影| 日本在线不卡视频| 久草免费在线视频| 一本综合精品| bbw在线视频| 日韩欧美中文在线观看| 国产 日韩 欧美一区| 婷婷久久免费视频| 欧美freesex黑人又粗又大| 狠狠爱成人网| 精品视频免费| 日本中文字幕不卡| 国产精品7m凸凹视频分类| 国产精品流白浆在线观看| 亚洲精品97| 久久精品国产在热久久| 免费观看在线色综合| 欧美精品日日操| 久久国产欧美日韩精品| 在线视频亚洲| 欧美日韩精品免费观看视欧美高清免费大片 | 国产精品美女| 捆绑调教美女网站视频一区| 久久香蕉精品| av在线日韩| 欧美aⅴ一区二区三区视频| 日韩影院精彩在线| 日韩精品一区二区三区免费观看| 国产另类在线| 蜜臀va亚洲va欧美va天堂| 久久永久免费| 日韩中文av| 国产午夜精品一区二区三区欧美| 91欧美日韩| 国产精品片aa在线观看| 三级一区在线视频先锋| 久久理论电影| 激情久久99| 欧美一区成人| 日韩一区欧美二区| 欧美精品一区二区久久| 岛国av在线网站| 国产精品亚洲综合色区韩国| 爽好多水快深点欧美视频| 婷婷亚洲五月色综合| 精品一区二区三区亚洲| 欧美日韩国产一区二区在线观看| 蜜桃免费网站一区二区三区| 一级欧洲+日本+国产| av在线日韩| 亚洲欧洲高清| 福利在线免费视频| 红杏一区二区三区| 鲁大师精品99久久久| 欧美日韩一区二区高清| 亚洲精品视频一二三区| 伊人国产精品| 在线精品视频一区| 在线综合欧美| 亚洲激情欧美| 日韩一区亚洲二区| 国产传媒在线| 精品国产免费人成网站| 国产成人在线中文字幕| 国产精品**亚洲精品| 欧美三区不卡| 欧美日韩一区二区高清| 午夜精品成人av| 美女一区网站| 天堂中文在线播放| 精品丝袜久久| 高潮久久久久久久久久久久久久| 电影91久久久| 91亚洲国产| 人人精品亚洲| 日本欧美不卡| 日本精品在线中文字幕| 国产精品高颜值在线观看| 精品国产aⅴ| 色网在线免费观看| 群体交乱之放荡娇妻一区二区| 99热精品久久| 亚洲国产一区二区三区在线播放| 精品一区在线| 另类激情亚洲| 亚洲图片久久| 日韩福利视频网| 国产精品对白| 中文在线а√天堂| 国产综合视频| 久久精品国产亚洲夜色av网站| 99精品综合| 视频一区二区中文字幕| 日韩精品成人在线观看| 国产精品高清一区二区| 国产精品久久久久久久久久10秀| 亚洲精品一级二级| 国产精品日韩久久久| 天海翼亚洲一区二区三区| 国产精一区二区| 日韩电影免费网址| 在线成人直播| 日韩av在线免费观看不卡| 老司机精品视频网| 日本在线精品| 性欧美69xoxoxoxo| 亚洲精品综合| 欧美成a人片免费观看久久五月天| 福利一区和二区| 伊人久久亚洲热| 日韩有码av| 日韩成人精品一区二区| 欧美精品黄色| 欧美色综合网| 国产精品久久久久av电视剧| 国产精品嫩草99av在线| 国产免费久久| 精精国产xxxx视频在线播放| 亚洲在线成人| 国产福利资源一区| 欧美国产小视频| 99视频一区| 国产日产精品_国产精品毛片| 91看片一区| 亚洲精品福利| 日韩成人三级| 爽爽淫人综合网网站| 久久精品一区二区国产| 激情久久久久久| 91九色综合| 91精品国产成人观看| 午夜精品福利影院| 国产精品久久久久蜜臀| 亚洲一级淫片| 欧美丰满日韩| 国产精品日韩久久久| 国产欧美精品久久| 激情综合亚洲| 久久精品97| 黄色日韩精品| 精品理论电影在线| 久久亚洲精品伦理| 国产拍在线视频| 日本综合视频| 欧美va天堂| 麻豆高清免费国产一区| 免费日韩av片| 国产96在线亚洲| 亚洲开心激情| 99久久激情| 日本中文字幕一区二区| 久久久精品久久久久久96 | 日韩中文字幕不卡| caoporn视频在线| 国产三级一区| 亚洲一卡久久| 人在线成免费视频| 国产乱子精品一区二区在线观看| 免费国产自久久久久三四区久久 | 九九精品调教| 国产精品三p一区二区| 午夜在线观看免费一区| 黄色aa久久| 免费精品一区| 日韩1区2区3区| 国产麻豆综合| 一区二区三区四区在线看| 精品国产美女a久久9999| 日韩精选在线| 国产亚洲一区在线| 日本高清不卡一区二区三区视频 | 在线亚洲欧美| 久久精品免费一区二区三区| 久久精品伊人| 国产精品a级| 欧美日一区二区在线观看| 美女网站久久|