spring中Aop的註解

@Pointcut註釋聲明一個切點目的是爲了告訴切面,誰是它的服務對象。(此註釋修飾的方法的方法體爲空,不須要寫功能好比 public void say(){};就能夠了,方法名能夠被候命的具體服務功能因此引用,它能夠被理解爲切點對象的一個代理對象方法)java

在spring配置文件中開啓aop註釋自動代理。如:<aop:aspectj-autoproxy/>spring

註解方式聲明Aop
1.用@Aspect註解將類聲明爲切面(若是用@Component("")註解註釋爲一個bean對象,那麼就要在spring配置文件中開啓註解掃描,<context:component-scan base-package="com.cjh.aop2"/>
不然要在spring配置文件中聲明一個bean對象)

 定義切點@Pointcut("execution(* *.saying(..))")

2.在切面須要實現相應方法的前面加上相應的註釋,也就是通知類型。 
 前置通知(註解中的sayings()方法,其實就是上面定義pointcut切點註解所修飾的方法名,那只是個代理對象,不須要寫具體至關於xml聲明切面的id名,以下,至關於id="embark",用於供其餘通知類型引用)

3.此處有環繞通知,環繞通知方法必定要有ProceedingJoinPoint類型的參數傳入,而後執行對應的proceed()方法,環繞才能實現。

 前置通知

    @Before("sayings()")

    後置通知

  @After("sayings()")

     環繞通知 注意要有ProceedingJoinPoint參數傳入。

     @Around("sayings()")

 

切記:<!-- 開啓aop註解方式,此步驟不能少,這樣java類中的aop註解纔會生效 -->

 <aop:aspectj-autoproxy/>

相關文章
相關標籤/搜索