@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對象)
2.在切面須要實現相應方法的前面加上相應的註釋,也就是通知類型。
前置通知(註解中的sayings()方法,其實就是上面定義pointcut切點註解所修飾的方法名,那只是個代理對象,不須要寫具體至關於xml聲明切面的id名,以下,至關於id="embark",用於供其餘通知類型引用)
3.此處有環繞通知,環繞通知方法必定要有ProceedingJoinPoint類型的參數傳入,而後執行對應的proceed()方法,環繞才能實現。