註解AOP程式設計流程

2021-10-01 18:39:58 字數 3260 閱讀 6038

spring提供了兩種切面宣告方式,實際工作中我們可以選用其中一種:

①基於xml配置方式宣告切面,為aop專門提供了aop命名空間

②基於註解方式宣告切面,aspectj切點表示式語言的支援。@aspectj允許開發者在pojo中定義切面

採用註解方式實現(annotation)步驟

①引入aspectj類庫

②在當前類上面加上註解-@component,加上去之後掃瞄這個類

package com.aspectj.user;

public

inte***ce

iuser

package com.aspectj.user;

import org.springframework.stereotype.component;

@component

public

class

iuserimpl

implements

iuser

@override

public

void

printtwo()

@override

public

void

printthree()

}

③定義切面、切點和通知型別

package com.aspectj.advice;

import org.aspectj.lang.joinpoint;

import org.aspectj.lang.proceedingjoinpoint;

import org.aspectj.lang.annotation.after;

import org.aspectj.lang.annotation.afterreturning;

import org.aspectj.lang.annotation.afterthrowing;

import org.aspectj.lang.annotation.around;

import org.aspectj.lang.annotation.aspect;

import org.aspectj.lang.annotation.before;

import org.aspectj.lang.annotation.pointcut;

import org.springframework.stereotype.component;

//getsignature():返回被**的目標方法

//getname():被**的目標方法的名字

//@component控制器(注入服務)

//@service 服務(注入dao)

//@component (把普通pojo例項化到spring容器中,相當於配置檔案中的)

@component

@aspect

public

class

advice

//替換前置

// @before("execution(* com.aspectj.user.*.*(..))")

@before

(value=

"mypointcut()"

)public

void

before

(joinpoint joinpoint)

//替換後置

@afterreturning

(value=

"mypointcut()"

,returning=

"obj"

)public

void

after

(joinpoint joinpoint,object obj)

//替換環繞

//@around(value="mypointcut()")

//public object around(proceedingjoinpoint jp)throws throwable

//替換丟擲異常

@afterthrowing

(value=

"mypointcut()"

,throwing=

"e")

public

void

afterthrowing

(joinpoint jp1,throwable e)

//最終通知

@after

(value=

"mypointcut()"

)public

void

lastafter

(joinpoint jp2)

}

④目標類所在的包,@component只有在掃瞄包之後才會起作用

註解建立Aop切面程式設計

使用註解實現切點程式設計 看一下使用xml配置實現切面程式設計 dao層 dao 層 public class studentdao aspect切面類 切面類 public class studentaspect public void after 測試類test 測試類 public class...

Spring 切面程式設計AOP註解

aop aspect oriented programming 切面程式設計通過預編譯方式和執行期動態 實現程式功能的統一維護的一種技術,是spring框架中乙個重點內容也是函式式程式設計的一種衍生范型。在spring中使用aop的業務只需要關注自己業務本身,將日誌記錄 效能統計 安全控制 事務處理...

使用註解模式完成AOP程式設計

1.註解的含義 aspect 表示的是當前這個類 是乙個切面類 before 前置處理器 after 後置處理器 afterreturning 這個表示的是在返回值的時候 進行呼叫 afterthrowing 這個表示的是在丟擲異常的時候呼叫 around 環繞通知 pointcut 這個表示的是乙...