看板 java 關於我們 聯絡資訊
1. 同樣使用版上的 source code public class Output123 { public static void main(String[] args) { char[] ch = new char[]{1,2,3}; System.out.println(String.valueOf(ch)); } } 2. 使用 around advice 但不執行 proceed() qty:project123_aop qrtt1$ cat Output123Aspect.aj public aspect Output123Aspect { pointcut select_main() : execution( * Output123.main(..)); void around(): select_main(){ System.out.println("123"); } } 3. 編譯它(使用 ajc) qty:project123_aop qrtt1$ ajc Output123.java Output123Aspect.aj qty:project123_aop qrtt1$ ls -alh total 32 drwxr-xr-x 6 qrtt1 staff 204B 9 27 21:02 . drwx------+ 22 qrtt1 staff 748B 9 27 21:00 .. -rw-r--r-- 1 qrtt1 staff 1.5K 9 27 21:02 Output123.class -rw-r--r-- 1 qrtt1 staff 164B 9 27 20:50 Output123.java -rw-r--r-- 1 qrtt1 staff 176B 9 27 21:00 Output123Aspect.aj -rw-r--r-- 1 qrtt1 staff 2.9K 9 27 21:02 Output123Aspect.class 4. 用 jvm 執行它 qty:project123_aop qrtt1$ java Output123 123 PS. 要有 aspectjrt.jar 在 classpath example: CLASSPATH=:/Users/qrtt1/app/aspectj1.7/lib/aspectjrt.jar -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.231.155.177 ※ 編輯: qrtt1 來自: 36.231.155.177 (09/27 21:08)
PsMonkey:賀!出現第五個了,要去 BM_NeedMoney 申請錢了 \囧/ 09/27 21:21
sbrhsieh:建議這篇改採load-time weaving的作法 09/28 03:41
sbrhsieh:否則有違反規則 0.2 項原則之嫌 09/28 03:43
qrtt1:嗯。有違就取消即可。俺也不是真的想參加啊。只是消磨時間 09/28 09:23
bleed1979:感謝各位高手的參與,讓晚輩開了眼界。 09/28 10:31
sbrhsieh:抱歉我看走眼了,直接用 ajc 編譯應該沒疑問。 09/28 16:10