引入通知是一種特殊的通知型別。它通過為介面提供實現類,允許物件動態地實現介面,就像物件已經在執行時擴充套件了實現類一樣。
引入通知可以使用兩個實現類 maxcalculator 和 mincalculator, 讓 purecalculator動態地實現 imaxcalculator 和 imincalculator 介面。 而這與從 maxcalculator 和 mincalculator中實現多繼承的效果相同。但卻不需要修改 purecalculator的源**。引入通知也必須在切面中宣告,在切面中,通過為任意字段新增@declareparents 註解來引入宣告。註解型別的 value 屬性表示哪些類是當前引入通知的目標。value 屬性值也可以是乙個 aspectj 型別的表示式,可以將乙個介面引入到多個類中。defaultimpl 屬性中指定這個介面使用的實現類。
示例
1. 新增模型介面和類
package xyz.huning.spring4.aop.calculator;
public inte***ce icalculator
package xyz.huning.spring4.aop.calculator;
public inte***ce imaxcalculator
package xyz.huning.spring4.aop.calculator;
public inte***ce imincalculator
package xyz.huning.spring4.aop.calculator;
import org.springframework.stereotype.component;
@component
public class purecalculator implements icalculator
@override
public double sub(double x, double y)
@override
public double mul(double x, double y)
@override
public double div(double x, double y)
}
package xyz.huning.spring4.aop.calculator.aopimport.annotation;
import xyz.huning.spring4.aop.calculator.imaxcalculator;
public class maxcalculator implements imaxcalculator
}
package xyz.huning.spring4.aop.calculator.aopimport.annotation;
import xyz.huning.spring4.aop.calculator.imincalculator;
public class mincalculator implements imincalculator
}
package xyz.huning.spring4.aop.calculator.aopimport.annotation;
import org.aspectj.lang.annotation.aspect;
import org.aspectj.lang.annotation.declareparents;
import org.springframework.core.annotation.order;
import org.springframework.stereotype.component;
import xyz.huning.spring4.aop.calculator.imaxcalculator;
import xyz.huning.spring4.aop.calculator.imincalculator;
@order(3)
@aspect
@component
public class calculatormaxminaspect
2. 新增配置檔案
<?xml version="1.0" encoding="utf-8"?>3. 新增測試類
package xyz.huning.spring4.aop.calculator.aopimport.annotation;
import xyz.huning.spring4.aop.calculator.imaxcalculator;
import xyz.huning.spring4.aop.calculator.imincalculator;
public class main
}
4. 執行結果
Spring之AOP註解方式
註解實現aop 1.啟用aspectj支援 2.在切面類加入 component aspect 3.配置切入點表示式 4.加入增強的方法,注意 環繞增強的方法中一定要加入proceedingjoinpoint引數 5.切面優先順序用切面類實現介面 implements ordered 或 order...
Spring之Aop的註解配置
1.首先要新增jar包 2.寫方法介面 public inte ce calculate 3.寫方法的實現類,並把其加入到ioc容器中去 component public class calculateimpl implements calculate public int sub int i,in...
Spring之AOP快速入門(註解)
aop aspect oriented programming 稱為面向切面程式設計,在程式開發中主要用來解決一些系統層面上的問題,比如日誌,事務,許可權等待,struts2的 設計就是基於aop的思想 用自己的話來說就比如乙個人 a 在排隊,然後aop 物件就相當於管理者,管理者就有權決定讓他人 ...