本篇內(nèi)容主要講解“如何正確使用Aspect 的.aj 類”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何正確使用Aspect 的.aj 類”吧!
公司主營(yíng)業(yè)務(wù):網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出拉孜免費(fèi)做網(wǎng)站回饋大家。
一、前言
二、滿腦子都是騷操作
1. 遇到問題
2. 發(fā)現(xiàn)問題
3. 排查問題
三、如何正確使用 Aspect 的 .aj 類
1. 安裝 AspectJ
2. AspectJ 插件
3. 添加依賴 aspectjrt.jar
4. 配置AspectJ編譯器
5. 案例測(cè)試
說來也是奇怪,只要是學(xué)編程的,從初次接觸的 Java 到安裝 JDK、IDEA、MySQL, 再到接觸 Spring、MyBatis、RPC、MQ,哪怕有時(shí)候在淺的坑也會(huì)跳進(jìn)去嘗嘗鮮,一遍抓著頭發(fā),一手點(diǎn)著鼠標(biāo)也幾乎是你的常態(tài)。你的鍵盤里總是有很多被抓碎的頭發(fā)!
上周,謝飛機(jī)(化名)發(fā)過來了自己的手?jǐn)]的中間件源碼,說這代碼都沒有啥怎么就不能切面呢?
看了幾遍源碼沒發(fā)現(xiàn)問題,開始調(diào)試,還真它哈拉哨的不進(jìn)這個(gè)切面,接下來;
DoJoinPoint
拷貝過來粘貼進(jìn)去,噗察一下貼進(jìn)去了,沒提示替換,雖然有報(bào)錯(cuò)但兩個(gè)類能共存,如下:
DoJoinPoint
不是一個(gè)正經(jīng) Java 類,路徑不對(duì)?有看不見的特殊字符?要不是IDEA把 .aj
這貨顯示成 C 類的圖標(biāo),可能早就發(fā)現(xiàn)問題了。緊接著把這錯(cuò)誤類的截圖發(fā)給了謝飛機(jī),問它你是怎么創(chuàng)建的?他說實(shí)話了
DoJoinPoint
時(shí),看到一個(gè) Aspect 的選項(xiàng),以為這個(gè)就是創(chuàng)建切面的快捷操作,如圖;
.aj
結(jié)尾的類,并不是一個(gè)正經(jīng)的 Java 類,所以切面不到,也根本沒有對(duì)應(yīng)的 class 文件
。AspectJ,簡(jiǎn)稱 AJ 我自己說的
AspectJ 其實(shí)也是 AOP 的一種實(shí)現(xiàn)技術(shù),功能類似于攔截器,在集成在 IntelliJ IDEA 開發(fā)工具里。在使用 IntelliJ IDEA 編寫 AspectJ 代碼之前需要本機(jī)先安裝 AspectJ 工具包。否則你的 .aj 類不能運(yùn)行,同時(shí)IDEA類顯示出來的 .aj 類,也是C的標(biāo)識(shí)
接下來我們就來聊聊關(guān)于這個(gè)東西怎么使用,別再被 .aj 騙了。
在使用 AspectJ 之前,需要去官網(wǎng)下載一個(gè)安裝包,地址:https://www.eclipse.org/aspectj/downloads.php 如果官網(wǎng)下載的很慢,可以從我提供的源碼中獲取,也可以從其他途徑搜索下載 aspectj-1.9.4.jar
下載完成安裝;
java -jar aspectj-1.9.4.jar
C:\aspectj1.9
,包括:bin、doc、lib等,后面我們就會(huì)使用到這些內(nèi)容。在專業(yè)版 IDEA 中開發(fā) AspectJ,需要安裝以下兩個(gè)插件:
開始之前需要在項(xiàng)目中添加 aspectjrt.jar
依賴,aspectjrt.jar
即 AspectJ 安裝目錄中lib
目錄下的jar包。你可以復(fù)制到工程中引入,也可以直接引入
Project Structure
IDEA 默認(rèn)使用 javac
編譯器,這里需要配置 AspectJ 的編譯器 ajc
,在 IDEA 中做相應(yīng)配置。
C:\aspectj1.9\lib\aspectjtools.jar
創(chuàng)建 Aspect 類
public aspect DoAspect {
pointcut logPointcut():call(* ApiTest.hi(..));
void around():call(void ApiTest.hi(..)){
System.out.println("call 開始...");
proceed();
System.out.println("call 結(jié)束...");
}
before(): logPointcut(){
System.out.println("方法執(zhí)行 before");
}
after(): logPointcut(){
System.out.println("方法執(zhí)行 after");
}
}
測(cè)試類
public class ApiTest {
public void hi(){
System.out.println("Hi Aspect");
}
public static void main(String[] args) {
ApiTest apiTest = new ApiTest();
apiTest.hi();
}
}
測(cè)試結(jié)果
call 開始...
方法執(zhí)行 before
Hi Aspect
call 結(jié)束...
方法執(zhí)行 after
Process finished with exit code 0
到此,相信大家對(duì)“如何正確使用Aspect 的.aj 類”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
本文名稱:如何正確使用Aspect的.aj類
新聞來源:http://www.rwnh.cn/article30/jscspo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、企業(yè)建站、網(wǎng)站排名、靜態(tài)網(wǎng)站、外貿(mào)建站、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)