精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一個Bug,讓我發現了Java界的.AJ(錐)!

開發 前端
說來也是奇怪,只要是學編程的,從初次接觸的 Java 到安裝 JDK、IDEA、MYSQL, 再到接觸 Spring、MyBatis、RPC、MQ,哪怕有時候在淺的坑也會跳進去嘗嘗鮮,一遍抓著頭發,一手點著鼠標也幾乎是你的常態。

[[394911]]

本文轉載自微信公眾號「bugstack蟲洞?!?,作者小傅哥 。轉載本文請聯系bugstack蟲洞棧公眾號。

目錄

  • 一、前言
  • 二、滿腦子都是騷操作
    • 1. 遇到問題
    • 2. 發現問題
    • 3. 排查問題
  • 三、如何正確使用 Aspect 的 .aj 類
    • 1. 安裝 AspectJ
    • 2. AspectJ 插件
    • 3. 添加依賴 aspectjrt.jar
    • 4. 配置AspectJ編譯器
    • 5. 案例測試
  • 四、總結
  • 五、系列推薦

一、前言

話我放這,踩過的坑越多頭發越少!

說來也是奇怪,只要是學編程的,從初次接觸的 Java 到安裝 JDK、IDEA、MYSQL, 再到接觸 Spring、MyBatis、RPC、MQ,哪怕有時候在淺的坑也會跳進去嘗嘗鮮,一遍抓著頭發,一手點著鼠標也幾乎是你的常態。你的鍵盤里總是有很多被抓碎的頭發!

但,哪怕是抓了這么頭發,還是遇到了一個滿腦子都是騷操作的小伙。傅哥,我的切面怎么攔截不到?我是照著你的《SpringBoot 中間件設計和開發》專欄寫的,你給我看看吧,我都弄了一天了

接下來我帶著大家一起看看什么是快樂星球,他是怎么一頓騷操作讓切面攔截不到的!

二、滿腦子都是騷操作

1. 遇到問題

上周,謝飛機(化名)發過來了自己的手擼的中間件源碼,說這代碼都沒有啥怎么就不能切面呢?

  • 最開始我大意了,讓謝飛機發了一些代碼截圖。
  • 看截圖的代碼,這完全就和我寫的中間件里的代碼一毛一樣,沒啥問題呀,包路徑也能掃描到,咋就不能切面了?
  • 我說你打個斷點調試下,看看怎么切不到了呢?嘿,調試了,直接通過,就是沒切面到。
  • 此時我思考了JDK版本、環境配置、Spring上下文、切面的定義、包的路徑以及這小子是否忽悠我?
  • 最后我抱著這小子忽悠我的心里,把源碼要過來了。

2. 發現問題

看了幾遍源碼沒發現問題,開始調試,還真它哈拉哨的不進這個切面,接下來;

  • 謝飛機的源碼保留,復制出來一份新的。
  • 我的目的要先讓他跑起來,在研究。接下來我把自己的工程里的 DoJoinPoint 拷貝過來粘貼進去,噗察一下貼進去了,沒提示替換,雖然有報錯但兩個類能共存,如下:

  • 這就神奇了哈,我當時懷疑是不它那 DoJoinPoint 不是一個正經 Java 類,路徑不對?有看不見的特殊字符?
    • 既然發現這個類不對,那行先刪掉。讓程序先跑起來,確保除了這個類其他的內容沒有問題,這樣也好排查問題。
    • 還別說,去掉這個錯誤類,程序可以正常運行,攔截到切面內容了。
    • 既然程序能跑了,我就想著這可以看看問題出在哪了,沒想到就只打開個文件夾,就發現了一個神奇的AJ!這貨壓根就不是 Java 類!圖片

3. 排查問題

要不是IDEA把 .aj 這貨顯示成 C 類的圖標,可能早就發現問題了。緊接著把這錯誤類的截圖發給了謝飛機,問它你是怎么創建的?他說實話了

  • 謝飛機先說自己偷懶了,哈哈哈,讓人怪不好意思的!
  • 他說在創建 DoJoinPoint 時,看到一個 Aspect 的選項,以為這個就是創建切面的快捷操作,如圖;
  • 創建完成以后發現有點不對,不是 class 類型的,是個 aspect,于是他手動把 aspect 改成了 class,
  • 所以,謝飛機實際創建出來的是一個 aspect 的以 .aj 結尾的類,并不是一個正經的 Java 類,所以切面不到,也根本沒有對應的 class 文件圖片。

三、如何正確使用 Aspect 的 .aj 類

AspectJ,簡稱 AJ 我自己說的

AspectJ 其實也是 AOP 的一種實現技術,功能類似于攔截器,在集成在 IntelliJ IDEA 開發工具里。在使用 IntelliJ IDEA 編寫 AspectJ 代碼之前需要本機先安裝 AspectJ 工具包。否則你的 .aj 類不能運行,同時IDEA類顯示出來的 .aj 類,也是C的標識

接下來我們就來聊聊關于這個東西怎么使用,別再被 .aj 騙了。

1. 安裝 AspectJ

在使用 AspectJ 之前,需要去官網下載一個安裝包,地址:https://www.eclipse.org/aspectj/downloads.php 如果官網下載的很慢,可以從我提供的源碼中獲取,也可以從其他途徑搜索下載 aspectj-1.9.4.jar

下載完成安裝;

  • 雙擊安裝
  • 命令安裝 java -jar aspectj-1.9.4.jar
  • 配置說明:沒有配置,傻瓜式下一步就可以了

默認配置安裝完成以后會在C盤創建出一個文件夾 C:\aspectj1.9,包括:bin、doc、lib等,后面我們就會使用到這些內容。

2. AspectJ 插件

在專業版 IDEA 中開發 AspectJ,需要安裝以下兩個插件:

  • Spring AOP/@AspectJ
  • AspectJ Support

3. 添加依賴 aspectjrt.jar

開始之前需要在項目中添加 aspectjrt.jar 依賴,aspectjrt.jar 即 AspectJ 安裝目錄中lib目錄下的jar包。你可以復制到工程中引入,也可以直接引入

在工程上鼠標右鍵,點擊 Open Module Setting 打開 Project Structure

點擊 Libraries 選項卡,和上面的 + 號,創建 New Project Library

選擇 C:\aspectj1.9\lib\aspectjrt.jar 路徑,點擊即可配置完成

4. 配置AspectJ編譯器

IDEA 默認使用 javac 編譯器,這里需要配置 AspectJ 的編譯器 ajc,在 IDEA 中做相應配置。

  • 打開 IDEA -> File -> Settings 對話
  • 選擇 Build,Execution,Deployment -> Compiler -> Java Compiler
  • Use complier:選擇 Ajc
  • 在 Path to aspectjtools.jar 里配置路徑 C:\aspectj1.9\lib\aspectjtools.jar

5. 案例測試

創建 Aspect 類

  1. public aspect DoAspect { 
  2.  
  3.     pointcut logPointcut():call(* ApiTest.hi(..)); 
  4.  
  5.     void around():call(void ApiTest.hi(..)){ 
  6.         System.out.println("call 開始..."); 
  7.         proceed(); 
  8.         System.out.println("call 結束..."); 
  9.     } 
  10.  
  11.     before(): logPointcut(){ 
  12.         System.out.println("方法執行 before"); 
  13.     } 
  14.  
  15.     after(): logPointcut(){ 
  16.         System.out.println("方法執行 after"); 
  17.     } 
  18.  

測試類

  1. public class ApiTest { 
  2.  
  3.     public void hi(){ 
  4.         System.out.println("Hi Aspect"); 
  5.     } 
  6.  
  7.     public static void main(String[] args) { 
  8.         ApiTest apiTest = new ApiTest(); 
  9.         apiTest.hi(); 
  10.     } 
  11.  

測試結果

  1. call 開始... 
  2. 方法執行 before 
  3. Hi Aspect 
  4. call 結束... 
  5. 方法執行 after 
  6.  
  7. Process finished with exit code 0 

到這,才是一個關于 Aspect 類的正確打開方式,關于 Aspect 的使用也可以嘗試搞搞,此篇還只是關于此類切面寫法的一個入門。

四、總結

你的代碼越粗獷、越豪放、越騷氣,幾乎你遇到的問題也是越多的,可能就是因為沒有遵守一定的研發執行規范,所以遇到的這些有點傻的問題,幾乎會浪費掉你一個上午或者一天。

但有些時候如果你能認真對待你弄出來的bug,深入分析下它是如何產生的,并把它復現出來一點點深入研究下,可能也會得到意想不到的收獲,也說不定。所以凡是認真,凡事沒有壞事。

關于切面、關于源碼、關于開發,可能并不應該只注重于功能實現,甚至有時候要想辦法逃離日復一日沒有成長的工作內容。多在那些有價值的技術上下功夫,那你的收獲也是最多的。

 

責任編輯:武曉燕 來源: bugstack蟲洞棧
相關推薦

2022-11-30 09:18:51

JavaMyBatisMQ

2024-05-20 08:25:55

2021-10-29 11:45:26

Python代碼Python 3.

2025-05-19 10:04:48

2023-05-17 00:22:15

2022-04-06 08:47:03

Dubbo服務協議

2021-04-28 14:31:35

Dubbo接口日志

2021-06-02 08:00:57

WebAsyncTas項目異步

2020-05-18 08:42:23

CSS背景圖像前端開發

2022-05-16 08:42:26

Pandasbug

2018-01-29 21:56:28

Bug程序程序員

2023-02-26 01:02:22

2024-10-23 16:11:07

調試bug定位

2021-12-29 19:20:41

數據GitHub服務器

2021-09-13 08:41:52

職場互聯網自閉

2020-04-01 08:40:44

Vue.jsweb開發

2016-12-14 10:00:44

數據結構編譯器

2024-06-03 11:43:55

2017-10-10 15:14:23

BUGiOS 11蘋果

2020-06-09 08:05:11

Android 代碼操作系統
點贊
收藏

51CTO技術棧公眾號

无码人妻一区二区三区免费n鬼沢| 亚洲精品在线免费| 狠狠躁夜夜躁人人爽天天高潮| 日韩美女毛片| 欧美午夜精品久久久| 老司机午夜免费福利视频| 天堂av手机版| 精品一区二区日韩| 91av在线影院| 日本在线一级片| 亚洲综合福利| 日韩欧美www| 国产视频在线视频| 欧美xxxxhdvideosex| 久久久www成人免费毛片麻豆| 成人福利视频网| 久久青青草视频| 在线中文字幕第一区| 亚洲欧美www| 国产在线观看免费播放| 韩日精品一区| 欧美日韩国产中文字幕| 国产精品88久久久久久妇女| 国产在线一二三| 成人免费毛片嘿嘿连载视频| 91精品国产综合久久男男| 亚洲男人第一av| 欧美日韩p片| 上原亚衣av一区二区三区| 真人bbbbbbbbb毛片| 警花av一区二区三区| 在线观看不卡一区| 日韩av片在线看| www欧美xxxx| 亚洲天堂网中文字| 亚洲成色最大综合在线| 亚洲av成人无码网天堂| 成人免费视频caoporn| 亚洲tv在线观看| 亚洲天堂aaa| 日本欧美一区二区三区| 日本精品视频在线观看| www.国产高清| 国产日韩欧美一区在线| 国语对白做受69| 国产一级一级片| 欧美午夜精品| 欧美黑人巨大精品一区二区| 2025国产精品自拍| 在线精品视频在线观看高清| 久久九九全国免费精品观看| 特黄一区二区三区| 欧美岛国激情| www.亚洲免费视频| 午夜剧场免费在线观看| 偷拍欧美精品| 欧美精品在线免费播放| 亚洲国产精品免费在线观看| 亚洲国产精品久久久天堂| 久久激情视频久久| √天堂中文官网8在线| 亚洲色图网站| 欧美放荡办公室videos4k| 精品一区在线视频| 精品91久久久久| 91av福利视频| 一级特黄免费视频| 另类中文字幕网| 91最新国产视频| 性一交一乱一乱一视频| av亚洲精华国产精华| 久久久久久九九九九| 青青青草原在线| 日本一二三不卡| 正在播放亚洲| 黑人精品视频| 色婷婷久久一区二区三区麻豆| 国产情侣av自拍| 巨大黑人极品videos精品| 欧美精品18+| 亚洲色偷偷色噜噜狠狠99网| 亚洲伊人春色| 日韩在线视频中文字幕| 精品爆乳一区二区三区无码av| 在线精品亚洲| 国产伦精品一区二区三区精品视频| 国产男男gay体育生白袜| 成人一区二区三区视频| 欧美一区二区三区成人久久片| 在线观看黄色av| 亚洲午夜免费视频| av观看免费在线| 国产高清亚洲| 亚洲九九九在线观看| 精品女人久久久| 亚洲精品黄色| 国产精品丝袜高跟| 亚洲精品一区二区三区四区| 日本一区二区三区高清不卡| 麻豆视频传媒入口| 芒果视频成人app| 日韩视频在线一区二区| 性欧美精品中出| 欧美三区不卡| 国产精品久久久久久久久借妻 | 国产激情第一页| 欧洲杯足球赛直播| 午夜免费在线观看精品视频| 亚洲网站在线免费观看| 91在线精品一区二区| 最新精品视频| 日韩精品三区| 欧美精品一区二| 亚洲熟女少妇一区二区| 亚洲在线一区| www.av一区视频| 99青草视频在线播放视| 精品高清美女精品国产区| 制服丝袜中文字幕第一页 | 激情综合亚洲精品| 免费看成人片| 成人影院在线视频| 91精品国产综合久久小美女| 日本精品在线观看视频| 亚洲每日在线| 国产精品v欧美精品∨日韩| 888av在线| 91黄色激情网站| 国产呦小j女精品视频| 精品动漫3d一区二区三区免费| 国产精选久久久久久| 国产黄在线看| 色综合一个色综合| 三级黄色片网站| 日韩午夜精品| 精品免费视频123区| 精品一性一色一乱农村| 欧美精品久久99久久在免费线| 久久国产柳州莫菁门| 免费在线成人| 精品在线一区| 在线天堂中文资源最新版| 亚洲国产私拍精品国模在线观看| 麻豆一区产品精品蜜桃的特点 | 亚洲一区二区在线播放| 日本三级在线播放完整版| 欧美在线免费播放| 日本少妇高潮喷水xxxxxxx| 久久99伊人| 农村寡妇一区二区三区| 黄色成人免费网| 亚洲乱码一区二区| 天天干天天色综合| 国产日韩影视精品| 国产一区二区在线免费播放| 成人情趣视频网站| 国产中文字幕亚洲| 国产黄大片在线观看画质优化| 51精品视频一区二区三区| 亚洲熟女www一区二区三区| 国产成人精品一区二区三区四区 | 香蕉亚洲视频| 欧美视频1区| 久久久久久久性潮| 精品激情国产视频| 精品人妻一区二区三区换脸明星| 一区二区在线电影| 你懂得在线视频| 久久精品日韩欧美| 亚洲欧美精品在线观看| 亚洲欧美在线人成swag| 九色91av视频| 日本天堂影院在线视频| 在线观看区一区二| 亚洲欧美精品久久| 丁香激情综合五月| 国产精品免费成人| 天天综合亚洲| 国产一区二区三区黄| 小黄鸭精品aⅴ导航网站入口| 日日骚久久av| www.午夜激情| 色诱视频网站一区| 日韩在线视频网址| 99re热视频这里只精品| 牛夜精品久久久久久久| 欧美区国产区| 欧美一卡2卡3卡4卡无卡免费观看水多多| 福利视频亚洲| 久久久噜久噜久久综合| 成人精品一区二区三区校园激情| 欧美一级夜夜爽| 国产性猛交╳xxx乱大交| 国产精品家庭影院| 国产极品一区二区| 麻豆国产精品官网| 免费看黄在线看| 99久久激情| 免费精品视频一区二区三区| 婷婷视频一区二区三区| 国产成人精品久久二区二区91 | 亚洲午夜视频在线观看| 精品国产aaa| 成人av在线一区二区三区| wwwwxxxx日韩| 最新成人av网站| 日本黄色a视频| 欧美精美视频| 国产精品区一区二区三在线播放| 国产91在线播放精品| 97色在线播放视频| 超碰免费公开在线| 国产小视频国产精品| 日本黄视频在线观看| 欧美精品一二三| 亚洲乱码国产乱码精品| 黄色一区二区三区| 青娱乐91视频| 亚洲桃色在线一区| 男人的天堂官网 | 在线免费看视频| 久久综合999| 丰满岳乱妇一区二区| 久久99国产精品麻豆| 成人性做爰aaa片免费看不忠| 亚洲大胆av| 妞干网视频在线观看| 亚洲成av人电影| 一区二区三区四区五区精品| 神马电影久久| 欧美大香线蕉线伊人久久| 女同一区二区三区| 国产欧美亚洲日本| heyzo欧美激情| 99国产精品久久久久老师| 国产电影一区| 92福利视频午夜1000合集在线观看| 国产亚洲欧美日韩精品一区二区三区 | 欧美日韩国产在线观看| 日韩国产成人在线| 日韩欧美在线视频观看| 中文字幕一区二区人妻电影| 午夜精品123| 亚洲日本韩国在线| 欧美日韩中文字幕| 麻豆精品久久久久久久99蜜桃| 天天亚洲美女在线视频| 午夜精品久久久久久久久久久久久蜜桃 | 亚洲国产女人aaa毛片在线| 亚洲老妇色熟女老太| 欧美成人vr18sexvr| 好吊色在线观看| 亚洲国产精品电影| 少妇高潮一区二区三区69| 亚洲精品电影网| 青春有你2免费观看完整版在线播放高清 | 日韩欧美国产成人| 国产中文字幕视频| 欧美午夜精品久久久| 国产精品视频a| 日韩女优av电影| 日韩一区二区三区在线观看视频| 精品视频久久久久久久| 久蕉在线视频| 日韩中文字幕网址| 青青草原国产在线| 亚洲97在线观看| 日韩av一级| 91老司机在线| 激情小说一区| 日韩久久久久久久久久久久久| 久久麻豆精品| 丁香花在线影院观看在线播放| 欧美亚洲三级| 亚洲最大天堂网| 成人免费高清在线观看| 欧美图片第一页| 亚洲三级视频在线观看| 日本少妇bbwbbw精品| 色久优优欧美色久优优| 97视频免费在线| 亚洲国产精品人久久电影| 黄色片在线免费看| 欧美精品免费看| sis001欧美| 亚洲一区二区三区香蕉| 综合干狼人综合首页| 亚洲制服中文| 在线日韩视频| www午夜视频| eeuss影院一区二区三区| 国产精品无码无卡无需播放器| 亚洲综合激情网| 中文字幕av无码一区二区三区| 日韩三级高清在线| 国产高清免费av在线| 欧美激情精品久久久久久变态| 欧美××××黑人××性爽 | 婷婷丁香激情网| 成人高清视频在线观看| 三级黄色片在线观看| 第一福利永久视频精品| 亚洲天堂免费av| 亚洲精品美女网站| 国产二区三区在线| 国产精品色婷婷视频| 久久国产精品色av免费看| 在线视频91| 久久综合九色| 日本性生活一级片| 亚洲色大成网站www久久九九| 亚洲天堂五月天| 亚洲韩国青草视频| 在线观看中文字幕的网站| 国产成人一区二区三区| 任我爽精品视频在线播放| 免费久久久久久| 免费观看成人av| 免费看黄色aaaaaa 片| 亚洲在线观看免费视频| 国产精品无码久久av| 亚洲无限av看| 裤袜国产欧美精品一区| 国内精品久久国产| 欧美人成网站| 亚洲午夜精品在线观看| 中文字幕一区在线观看视频| 波多野结衣午夜| 亚洲欧美www| 成人直播视频| 欧美日韩国产免费一区二区三区| 亚洲精品麻豆| 免费黄色三级网站| 午夜精品久久久久久久99樱桃| 亚洲av无码片一区二区三区| 久久天天躁夜夜躁狠狠躁2022| 精品久久久网| 亚洲人成人77777线观看| 三级亚洲高清视频| 成人片黄网站色大片免费毛片| 欧美日韩亚洲91| 涩涩视频在线观看免费| 2019中文字幕在线免费观看| 日韩最新在线| 日韩av黄色网址| 91老司机福利 在线| 狠狠人妻久久久久久| 日韩精品中文字幕在线播放| 深夜福利视频一区二区| 久久福利电影| 久久久噜噜噜| 亚洲精品成人av久久| 欧美日韩一区成人| 欧美13一16娇小xxxx| 亚洲永久在线观看| 午夜精品视频| 扒开伸进免费视频| 欧美日韩国产精品| 黄色片在线免费看| 国产欧美日韩91| 一区二区三区毛片免费| 日韩女优在线视频| 狠狠爱在线视频一区| 二区三区在线| 成人在线小视频| 国内精品嫩模av私拍在线观看| yy1111111| 色88888久久久久久影院按摩| 一区二区三区视频在线观看视频| 成人日韩在线电影| 亚洲伦伦在线| 男人的天堂官网| 日韩欧美区一区二| 黄色在线网站噜噜噜| 欧美在线视频一区二区三区| 极品少妇xxxx精品少妇| 四虎成人精品永久免费av| 亚洲一区二区福利| 激情久久免费视频| 色欲色香天天天综合网www| 国产午夜精品一区二区三区嫩草 | 国产精品h视频| 丁香婷婷综合网| 国产99久久久久久免费看| 欧美成年人网站| 国产成人av| 少妇高潮一69aⅹ| 色狠狠av一区二区三区| 久久久久久久久免费视频| 韩国成人一区| 狠狠色综合播放一区二区| 特一级黄色大片| 日韩在线观看免费| 亚洲美女15p| 无套白嫩进入乌克兰美女| 日本黄色一区二区| 黄色影院在线看| 一区二区三区三区在线| 久久久综合网站| 午夜精品无码一区二区三区|