Spring之AOP註解之引入通知

2021-09-02 11:59:25 字數 2668 閱讀 9881

引入通知是一種特殊的通知型別。它通過為介面提供實現類,允許物件動態地實現介面,就像物件已經在執行時擴充套件了實現類一樣。

引入通知可以使用兩個實現類 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 物件就相當於管理者,管理者就有權決定讓他人 ...