[投稿123] aspectj 版
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)
推
09/27 21:21, , 1F
09/27 21:21, 1F
→
09/28 03:41, , 2F
09/28 03:41, 2F
→
09/28 03:43, , 3F
09/28 03:43, 3F
→
09/28 09:23, , 4F
09/28 09:23, 4F
推
09/28 10:31, , 5F
09/28 10:31, 5F
→
09/28 16:10, , 6F
09/28 16:10, 6F