Spring的AOP 從入門到精通(2)

2021-10-05 09:43:21 字數 1793 閱讀 1501

作為乙個入門的小demo,這裡我們使用的所有方法都不涉及傳參問題。步驟可以分為如下:

① 將目標類和切面類(封裝了通知方法的類)加入到ioc容器中。

② 告訴spring到底哪個是切面類。使用@aspect註解。

③ 告訴spring,切面類裡面的每乙個方法,都是何時何地執行。

(1)將目標類和切面類加入到ioc容器中。

/*

首先建立乙個介面,這也是jdk底層動態**傳入的介面值照應

*/public

inte***ce

calculator

package com.cn.impl;

/*實現介面

使用@service註解,將這個類加入到容器中

*/import com.cn.service.calculator;

import org.springframework.stereotype.service;

@service

public

class

calculatorimpl

implements

calculator

}

package com.cn.util;

/*切面類,使用@commponent註解,將這個類加入到容器中

*/import org.aspectj.lang.annotation.*;

import org.springframework.stereotype.component;

@component

@aspect

public

class

logutils

@after

("execution(public void com.cn.service.calculator.add())"

)public

void

afterlog()

@afterreturning

("execution(public void com.cn.service.calculator.add())"

)public

void

returnlog()

@afterthrowing

("execution(public void com.cn.service.calculator.add())"

)public

void

throwlog()

}

(2) 告訴spring到底哪個是切面類。使用@aspect註解。

如上**所示,在切面類中使用了@aspect註解

(3)告訴spring,切面類裡面的每乙個方法,都是何時何地執行。

分別使用了@before、@after、@afterreturning、@afterthrowing,四個註解對應不同的時刻,使用表示式,繫結對應方法。

這時候在xml檔案中開啟ioc註解掃瞄和aop的切面**即可

<

!--開啟ioc註解掃瞄--

>

package

="com.cn"

>

<

/context:component-scan>

<

!--啟動aop切面**--

>

>

執行結果如下

Spring從入門到放棄

千辛萬苦終於除錯好了idea,開始了第乙個程式的編寫,其中有如下要求 首先在 edu.itgeek.setter 包中,建立介面 phone,在介面中編寫乙個 call 方法 package edu.itgeek.setter public inte ce phone之後建立 phone 介面的實現...

Scrapy爬蟲從入門到例項精講(上)

最近幾天一直在學習scrapy這個框架,打算用幾篇文章來總結一下自己這段時間學習的知識。首先我們需要簡單介紹一下scrapy是個什麼東西。先來看一張圖,是從官網上弄下來的。scrapy是乙個框架,這個框架是用來爬取 資料的,並且該框架為我們提供了各種介面,包括爬蟲介面,管道介面,資料 儲存介面以及資...

C 面向服務WebService從入門到精通

一 c 遠端呼叫技術webservice修煉手冊 基礎篇 本次分享課您將學習到以下乾貨知識點 1 webservice技術呼叫原理圖。2 c webservice常用的幾種呼叫方式。3 c webservice除錯小技巧和開發必備工具分享。4 實戰演練之如何通過優雅的方式進行webservice呼叫...