作為乙個入門的小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呼叫...