基於註解的 AOP 開發教程

2021-10-14 15:45:56 字數 3012 閱讀 6016

快速入門

我們還抽取了切點表示式:

//必須加,不然只有你知道這是個aspect,spring不認識的

public

class

myaspect

//@afterreturning("execution(* cn.itcast.aop_anno.*.*(..))")

public

void

afterreturning1()

//proceeding joinpoint: 正在執行的連線點===切點

//@around("execution(* cn.itcast.aop_anno.*.*(..))")

@around

("myaspect.mypointcut()"

)public object around1

(proceedingjoinpoint pjp)

throws throwable

public

void

afterthrowing()

//@after("execution(* cn.itcast.aop_anno.*.*(..))")

public

void

after()

//抽取定義切點表示式

@pointcut

("execution(* cn.itcast.aop_anno.*.*(..))"

)public

void

mypointcut()

}

<?xml version="1.0" encoding="utf-8"?>

<

context:component-scan

base-package

="cn.itcast.aop_anno"

>

context:component-scan

>

<

aop:aspectj-autoproxy

>

aop:aspectj-autoproxy

>

beans

>

aopannotest :

package com.itcast;

import cn.itcast.aop_anno.targetinte***ce;

import org.junit.test;

import org.junit.runner.runwith;

import org.springframework.beans.factory.annotation.autowired;

import org.springframework.test.context.contextconfiguration;

import org.springframework.test.context.junit4.springjunit4classrunner;

/** * @author qlbf

* @version 1.0

* @date 2021/1/13 9:57

*/@runwith

(springjunit4classrunner.

class

)@contextconfiguration()

public

class

aopannotest

}

測試around成功

總的來說基於註解的 aop 它還是需要xml檔案的,但只不過它就把裡面的一些內容繫結給一些切面類等…,它沒有新註解一點都不需要xml的情況,但是我感覺他和基於 xml 的 aop 開發入門相比,就是在xml少寫一點東西,但還是需要xml來開啟元件掃瞄和 aop 的自動**,感覺更麻煩了。。。

基於註解的 AOP 開發

同理一樣的做法,將配置檔案的標籤變為註解 建立目標介面和目標類 內部有切點 public inte ce targetinte ce component target public class target implements targetinte ce 建立切面類 內部有增強方法 將目標類和切面...

基於註解的AOP

aop是oop的延續,是aspect oriented programming的縮寫,意思是面向切面程式設計。可以通過預編譯方式和執行期動態 實現在不修改源 的情況下給程式動態統一新增功能的一種技術。aop實際是gof設計模式的延續,設計模式孜孜不倦追求的是呼叫者和被呼叫者之間的解耦,aop可以說也...

AOP基於註解實現

切面類 component 控制反轉 aspect 宣告切面類 public class forumadvisor after execution com.mitu.aspect.宣告後置增強 public void after around execution com.mitu.aspect.宣告...