我在寫我的碩士論文,標題是「面向方面的軟件開發」。我必須在AspectJ中做一個簡單的項目,所以我使用AspectJ來設置Eclipse。AspectJ Around Advice
我無法理解AROUND的建議。我創建了3個文件:
1)message_out。 java
2)message_test。 java
3)simple_aspect。 AJ
在simple_aspect文件:預計
1)before和after建議正在爲(我認爲) - 所以,我 「評論說:」 出來。
2)around建議只適用於MESSAGE_ONE()方法。
我的問題是:
1)任何人都可以請解釋我(從simple_aspect文件)落後於around通知(WHYTHIS,WHYTHAT)命名參數的邏輯?
2)如何使方面接受並從MESSAGE_TWO改變TWO arugments(消息)()方法。
謝謝:)
message_out.java:
package mypackage;
public class message_out {
public static void message_one(String message) {
System.out.println(message);
}
public static void message_two(String message1, String message2) {
System.out.println(message1 + ", " + message2);
}
}
message_test.java:
package mypackage;
public class message_test {
public static void main(String[] args) {
message_out.message_one("AAAAA");
message_out.message_two("BBBBB", "CCCCCC");
}
}
simple_aspect.aj:
package mypackage;
public aspect simple_aspect {
/*pointcut message_before() : call (* message_out.message_one(..));
before() : message_before() {
System.out.println("BEFORE");
}
pointcut message_after() : call (* message_out.message_one(..));
after() : message_after() {
System.out.println("AFTER");
}*/
pointcut message_around(String WHYTHIS)
: call(* message_out.message_one(String)) && args (WHYTHIS);
void around (String WHYTHAT) : message_around(WHYTHAT) {
WHYTHAT = "CHANGED";
proceed (WHYTHAT);
}
}
解釋爲什麼你或其他人選擇了某些變量名?無論如何,我可能會通過一個AspectJ教程 - 如果這是您的論文,我會從學習所選工具開始。描述建議早在我見過的問答教程和書籍中就已經介紹過了,因爲它非常重要。 –
我仍在學習AspectJ並試圖理解Java(我是Java新手)。這就是爲什麼一次難以理解和「連接」這兩種工具的原因。我住的地方不可能拿到這類書籍,我也不喜歡獲得數字(非法律)副本。另外,關於AspectJ的書籍(最後我不得不從網絡中獲得的)爲這些成員提供了一些先進的術語(aka newbs),以完全摒棄它,並且我認爲每個人(包括我)都沒有有時間閱讀所有材料,並完全理解所有內容,只是寫一個簡單的例子。 – 0v3rl0rd