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

資訊專欄INFORMATION COLUMN

AOP的兩種實(shí)現(xiàn)方式

Chao / 3221人閱讀

摘要:本文只要記錄的用法,以框架為例。我知道的有兩種實(shí)現(xiàn)方法,路徑切入和注解切入,區(qū)別在于切點(diǎn),兩者各有利弊,前者適合批量切入,后者比較靈活,加注解的類才會(huì)被切。自定義注解和定義自定義注解,無需其他,標(biāo)識(shí)作用的注解。

大家都知道spring最大的特點(diǎn)就IOC和AOP,IOC是最常用的注入,就是被注入的類上加@Component注解,在需要用到時(shí)候,通過 @Autowired注入,不用每次都new出來。當(dāng)然為了分清層級(jí),@Component通常使用@Repository、@Service、@Controller代替。

本文只要記錄AOP的用法,以springboot框架為例。

個(gè)人理解AOP就是攔截器,(可能是我理解不全面,反正我現(xiàn)在就認(rèn)為它是攔截器,攔截器!攔截器!只不過娶個(gè)英文名字而已)。
功能:AOP可以在做某些事情之前或之后強(qiáng)塞一些操作。

我知道的有兩種實(shí)現(xiàn)方法,路徑切入和注解切入,區(qū)別在于切點(diǎn),兩者各有利弊,前者適合批量切入,后者比較靈活,加注解的類才會(huì)被切。

1、通過路徑切入
2、通過注解切入

路徑切入

1、新建切面類上面加倆注解 @Aspect @Component 缺一不可
2、@Pointcut寫上要切入的包,也可以精確到類
3、@Before切入點(diǎn)之前要處理的業(yè)務(wù)
4、@After切入點(diǎn)之后要處理的業(yè)務(wù)

@Aspect
@Component
public class VisitAop {
    
  @Pointcut("execution(public * com.forum.controller.*.*(..))")
  public void log() {
  }

  @Before("log()")
  public void doBefore(JoinPoint joinPoint) {
        ........
  }
  
  @After("log()")
  public void doAfter() {
        ........
  }
}
注解切入

1、自定義注解
2、切入類@Aspect @Component 缺一不可
3、@Pointcut寫上要切入注解(意思是帶此注解者,必切?。?br>4、@Before、@After同上。

1、自定義注解
1.1 @Target和@Retention定義自定義注解,無需其他,標(biāo)識(shí)作用的注解。

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface VisitCount {
}

3、切入點(diǎn)
3.1和路徑切入的區(qū)別在此

@Pointcut("@annotation(com.Annotation.VisitCount)")
JoinPoint

此外可以了解一些doBefore(),的參數(shù)JoinPoint,以便操作業(yè)務(wù);

1、joinPoint.getSignature().getDeclaringType().getSimpleName(),切入的類名
2、joinPoint.getArgs(),切入方法的參數(shù)數(shù)組
3、joinPoint.getSignature().getName(),切入方法名

我的博客即將同步至騰訊云+社區(qū),邀請(qǐng)大家一同入駐:https://cloud.tencent.com/dev...

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

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

相關(guān)文章

  • Spring入門IOC和AOP學(xué)習(xí)筆記

    摘要:入門和學(xué)習(xí)筆記概述框架的核心有兩個(gè)容器作為超級(jí)大工廠,負(fù)責(zé)管理創(chuàng)建所有的對(duì)象,這些對(duì)象被稱為。中的一些術(shù)語切面切面組織多個(gè),放在切面中定義。 Spring入門IOC和AOP學(xué)習(xí)筆記 概述 Spring框架的核心有兩個(gè): Spring容器作為超級(jí)大工廠,負(fù)責(zé)管理、創(chuàng)建所有的Java對(duì)象,這些Java對(duì)象被稱為Bean。 Spring容器管理容器中Bean之間的依賴關(guān)系,使用一種叫做依賴...

    wenyiweb 評(píng)論0 收藏0
  • Spring AOP實(shí)現(xiàn)機(jī)制

    摘要:本文主要介紹的兩種代理實(shí)現(xiàn)機(jī)制,動(dòng)態(tài)代理和動(dòng)態(tài)代理。直接使用首先定義需要切入的接口和實(shí)現(xiàn)。我實(shí)現(xiàn)了一個(gè)工廠類來獲取代理對(duì)象代理具體使用輸出結(jié)果動(dòng)態(tài)代理我們?cè)傩陆ㄒ粋€(gè)來,這次不實(shí)現(xiàn)任何接口。 AOP(Aspect Orient Programming),一般稱為面向切面編程,作為面向?qū)ο蟮囊环N補(bǔ)充,用于處理系統(tǒng)中分布于各個(gè)模塊的橫切關(guān)注點(diǎn),比如事務(wù)管理、日志、緩存等等。AOP實(shí)現(xiàn)的關(guān)鍵在...

    dendoink 評(píng)論0 收藏0
  • 慕課網(wǎng)_《Spring入門篇》學(xué)習(xí)總結(jié)

    摘要:入門篇學(xué)習(xí)總結(jié)時(shí)間年月日星期三說明本文部分內(nèi)容均來自慕課網(wǎng)。主要的功能是日志記錄,性能統(tǒng)計(jì),安全控制,事務(wù)處理,異常處理等等。 《Spring入門篇》學(xué)習(xí)總結(jié) 時(shí)間:2017年1月18日星期三說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://git...

    Ververica 評(píng)論0 收藏0
  • Spring 的基本應(yīng)用——IoC 和 AOP

    摘要:的兩大核心機(jī)制是控制反轉(zhuǎn)和面向切面編程,對(duì)于初學(xué)者來講,搞清楚這兩個(gè)核心機(jī)制就掌握了的基本應(yīng)用。配置對(duì)象張三添加標(biāo)簽對(duì)應(yīng)屬性名,是屬性的值。若包含特殊字符,比如張三,使用張三進(jìn)行配置,如下所示。 前言 對(duì)于任何一個(gè) Java 開發(fā)人員,Spring 的大名一定如雷貫耳,在行業(yè)中可謂是無人不知、無人不曉,說它是 Java 領(lǐng)域第一框架毫不為過。 showImg(https://segme...

    DirtyMind 評(píng)論0 收藏0
  • Spring框架之我見(三)——IOC、AOP

    摘要:模塊負(fù)責(zé)的所有面向切面的功能。總結(jié)的統(tǒng)一管理,降低了對(duì)象之間的耦合對(duì)主流的框架提供了很好的集成支持提供眾多組件,事務(wù)管理,等具有高度可開放性,開發(fā)者可以自由選擇部分或全部主要使用工廠模式和代理模式。 聊完了Spring框架中最重要的兩種設(shè)計(jì)模式,我們來看一下Spring框架的模塊和結(jié)構(gòu)圖。 Spring框架的結(jié)構(gòu) 下圖是Spring官方給出的Spring框架的結(jié)構(gòu)圖。 showImg(...

    khs1994 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<