国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

北京 網(wǎng)站建設(shè) 公司公眾號(hào)怎么引流推廣

北京 網(wǎng)站建設(shè) 公司,公眾號(hào)怎么引流推廣,網(wǎng)站制作收費(fèi)標(biāo)準(zhǔn),專門做產(chǎn)品測評(píng)的網(wǎng)站AOP簡介 AOP(面向切面編程)是一種編程范式,Spring AOP是基于代理模式的AOP框架,它通過動(dòng)態(tài)代理實(shí)現(xiàn)切面的織入,更加輕量級(jí)和易于使用。 Joinpoint (連接點(diǎn)):類里面可以被增強(qiáng)的方法即為連接點(diǎn)。例如,想修…

AOP簡介

AOP(面向切面編程)是一種編程范式,Spring AOP是基于代理模式的AOP框架,它通過動(dòng)態(tài)代理實(shí)現(xiàn)切面的織入,更加輕量級(jí)和易于使用。

  • Joinpoint (連接點(diǎn)):類里面可以被增強(qiáng)的方法即為連接點(diǎn)。例如,想修改哪個(gè)方法的功能,那么該方法就是一個(gè)連接點(diǎn)。
  • Pointcut(切入點(diǎn)):對(duì)Joinpoint進(jìn)行攔截的定義即為切入點(diǎn)。例如,攔截所有以insert 開始的方法,這個(gè)定義即為切入點(diǎn)。
  • Advice (通知):攔截到Joinpoint 之后所要做的事情就是通知。例如,上文說到的打印日志監(jiān)控。通知分為前置通知、后置通知、異常通知、最終通知和環(huán)繞通知。
  • Aspect ( 切面): Pointcut 和Advice的結(jié)合。
  • Target (目標(biāo)對(duì)象):要增強(qiáng)的類稱為Target。

引入Maven依賴

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId>
</dependency>

動(dòng)態(tài)數(shù)據(jù)源配置

@Component
@Aspect
public class ExampleAspect {@Pointcut("execution(* com.example.*.*(..))")public void foo() {}@Before(value = "foo()")public void before(JoinPoint jp) {String name = jp.getSignature().getName();System.out.println(name + "方法開始執(zhí)行...");}@After(value = "foo()")public void after(JoinPoint jp) {String name = jp.getSignature().getName();System.out.println(name + "方法執(zhí)行結(jié)束...");}@AfterReturning(value = "foo()", returning = "result")public void afterReturning(JoinPoint jp, Object result) {String name = jp.getSignature().getName();System.out.println(name + "方法返回值為: " + result);}@AfterThrowing(value = "foo ()", throwing = "e")public void afterThrowing(JoinPoint jp, Exception e) {String name = jp.getSignature().getName();System.out.println(name + "方法拋異常了,異常是: " + e.getMessage());}@Around("foo()")public Object around(ProceedingJoinPoint pjp) throws Throwable {return pjp.proceed();}
}

@Aspect注解表明這是一個(gè)切面類。

  • @Pointcut注解:這是一個(gè)切入點(diǎn)定義。execution 中的第一個(gè) * 表示方法返回任意值,第二個(gè) * 表示service 包下的任意類,第三個(gè) * 表示類中的任意方法,括號(hào)中的兩個(gè)點(diǎn)表示方法參數(shù)任意,即這里描述的切入點(diǎn)為service 包下所有類中的所有方法。
    • 常用的@Pointcut值包括:

      • execution:用于匹配方法執(zhí)行的連接點(diǎn)??梢允褂猛ㄅ浞驼齽t表達(dá)式來指定匹配的方法。
      • within:用于匹配指定類型內(nèi)的方法執(zhí)行連接點(diǎn)。
      • this:用于匹配當(dāng)前AOP代理對(duì)象類型的連接點(diǎn)。
      • target:用于匹配目標(biāo)對(duì)象類型的連接點(diǎn)。
      • args:用于匹配方法參數(shù)類型的連接點(diǎn)。
      • @annotation:用于匹配使用指定注解修飾的方法連接點(diǎn)。
      • bean:用于匹配指定名稱的Bean對(duì)象的連接點(diǎn)。
      • 這些@Pointcut值可以與邏輯運(yùn)算符(&&、||、!)一起使用,以實(shí)現(xiàn)更復(fù)雜的切點(diǎn)表達(dá)式。例如:
        @Pointcut(“execution(* com.example.service..(…)) && !execution(* com.example.service.internal..(…))”)
        上述切點(diǎn)表達(dá)式匹配了com.example.service包下的所有方法,但排除了com.example.service.internal包下的方法。
        請(qǐng)注意,上述只是常見的@Pointcut值示例,實(shí)際使用時(shí)可以根據(jù)需要進(jìn)行更靈活的配置和組合。
    • @Pointcut常見表達(dá)式包括:

      • execution:用于匹配方法執(zhí)行的連接點(diǎn)。例如:
        execution(public * com.example.service..(…)):匹配com.example.service包下所有public方法的執(zhí)行。
        execution(* com.example.service.UserService.*(…)):匹配com.example.service.UserService類中的所有方法的執(zhí)行。
      • within:用于匹配指定類型內(nèi)的方法執(zhí)行連接點(diǎn)。例如:
        within(com.example.service.*):匹配com.example.service包下所有類的方法執(zhí)行。
        within(com.example.service.UserService):匹配com.example.service.UserService類中的所有方法的執(zhí)行。
      • this:用于匹配當(dāng)前AOP代理對(duì)象類型的連接點(diǎn)。例如:
        this(com.example.service.UserService):匹配當(dāng)前AOP代理對(duì)象類型為com.example.service.UserService的方法執(zhí)行。
      • target:用于匹配目標(biāo)對(duì)象類型的連接點(diǎn)。例如:
        target(com.example.service.UserService):匹配目標(biāo)對(duì)象類型為com.example.service.UserService的方法執(zhí)行。
      • args:用于匹配方法參數(shù)類型的連接點(diǎn)。例如:
        args(java.lang.String):匹配方法參數(shù)類型為java.lang.String的方法執(zhí)行。
      • @annotation:用于匹配使用指定注解修飾的方法連接點(diǎn)。例如:
        @annotation(org.springframework.transaction.annotation.Transactional):匹配使用org.springframework.transaction.annotation.Transactional注解修飾的方法執(zhí)行。
      • bean:用于匹配指定名稱的Bean對(duì)象的連接點(diǎn)。例如:
        bean(userService):匹配名稱為userService的Bean對(duì)象的方法執(zhí)行。
  • @Before注解:表示這是一個(gè)前置通知,該方法在目標(biāo)方法執(zhí)行之前執(zhí)行。通過JoinPoint參數(shù)可以獲取目標(biāo)方法的方法名、修飾符等信息。
  • @After注解:表示這是一個(gè)后置通知,該方法在目標(biāo)方法執(zhí)行之后執(zhí)行。
  • @AfterReturning注解:表示這是一個(gè)返回通知,在該方法中可以獲取目標(biāo)方法的返回值。@AfterReturmning 注解的returning參數(shù)是指返回值的變量名,對(duì)應(yīng)方法的參數(shù)。注意,在方法參數(shù)中定義了result 的類型為Object,表示目標(biāo)方法的返回值可以是任意類型,若result 參數(shù)的類型為Long,則該方法只能處理目標(biāo)方法返回值為Long的情況。
  • @AfterThrowing注解:表示這是一個(gè)異常通知,即當(dāng)目標(biāo)方法發(fā)生異常時(shí),該方法會(huì)被調(diào)用,異常類型為Exception 表示所有的異常都會(huì)進(jìn)入該方法中執(zhí)行,若異常類型為ArithmeticException,則表示只有目標(biāo)方法拋出的ArithmeticException異常才會(huì)進(jìn)入該方法中處理。
  • @Around注解:表示這是一一個(gè)環(huán)繞通知。環(huán)繞通知是所有通知里功能最為強(qiáng)大的通知,可以實(shí)現(xiàn)前置通知、后置通知、異常通知以及返回通知的功能。目標(biāo)方法進(jìn)入環(huán)繞通知后,通過調(diào)用ProceedingJoinPoint對(duì)象的proceed方法使目標(biāo)方法繼續(xù)執(zhí)行,開發(fā)者可以在此修改目標(biāo)方法的執(zhí)行參數(shù)、返回值等,并且可以在此處理目標(biāo)方法的異常。

本文到此結(jié)束,感謝您的觀看!!!

http://aloenet.com.cn/news/38931.html

相關(guān)文章:

  • 做小程序好還是做微網(wǎng)站好現(xiàn)代網(wǎng)絡(luò)營銷的方式
  • 電子商務(wù)網(wǎng)站建設(shè)需要哪些技術(shù)seo綜合查詢平臺(tái)
  • 直播網(wǎng)站怎么做壓力測試站內(nèi)關(guān)鍵詞自然排名優(yōu)化
  • 一品威客app下載鄭州優(yōu)化公司有哪些
  • 網(wǎng)站建設(shè)方案書安全性中山疫情最新消息
  • 專業(yè)vi設(shè)計(jì)公司哪家強(qiáng)seo排名關(guān)鍵詞點(diǎn)擊
  • 知名網(wǎng)站制作公百度搜索詞排名
  • 模板網(wǎng)站可以做seo嗎網(wǎng)站設(shè)計(jì)制作
  • 網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣方案網(wǎng)頁開發(fā)用什么軟件
  • 做網(wǎng)站的費(fèi)用是多少錢搜索引擎優(yōu)化是什么工作
  • flask公司網(wǎng)站開發(fā)seo 優(yōu)化思路
  • 大型網(wǎng)站構(gòu)建實(shí)施方案代寫文案平臺(tái)
  • 淄博專業(yè)做網(wǎng)站簡單免費(fèi)制作手機(jī)網(wǎng)站
  • 凡科互動(dòng)游戲怎么玩高分免費(fèi)seo工具
  • 鶴山區(qū)網(wǎng)站建設(shè)關(guān)鍵詞排名點(diǎn)擊軟件
  • 網(wǎng)站建設(shè)服務(wù)費(fèi)會(huì)計(jì)分錄品牌推廣方案案例
  • 佛山企業(yè)網(wǎng)站搭建公司百度認(rèn)證
  • 贛州網(wǎng)站優(yōu)化公司網(wǎng)站分析
  • 網(wǎng)站建設(shè)網(wǎng)頁設(shè)計(jì)用什么軟件當(dāng)下最流行的營銷方式
  • 秦皇島網(wǎng)站建設(shè)價(jià)格我要推廣網(wǎng)
  • 麗水網(wǎng)站建設(shè)哪家好網(wǎng)址導(dǎo)航哪個(gè)好
  • 做系統(tǒng)網(wǎng)站化學(xué)sem是什么意思
  • 最牛的手機(jī)視頻網(wǎng)站建設(shè)免費(fèi)的網(wǎng)站軟件
  • 自己做的網(wǎng)站字體變成方框18歲以上站長統(tǒng)計(jì)
  • 網(wǎng)站建設(shè)總體規(guī)劃百度云官網(wǎng)
  • 不登陸不收費(fèi)的網(wǎng)站鏈接seo優(yōu)化一般優(yōu)化哪些方面
  • 可以做外鏈的音樂網(wǎng)站百度廣告聯(lián)盟app下載官網(wǎng)
  • 如何給公司取一個(gè)好名字優(yōu)化網(wǎng)站關(guān)鍵詞優(yōu)化
  • ps中網(wǎng)站頁面做多大的豬八戒網(wǎng)接單平臺(tái)
  • 彩票計(jì)劃網(wǎng)站開發(fā)哪里有競價(jià)推廣托管