[英]Execute code before and after method?
在服務層我有一個看起來像這樣的類:
class MyService {
public doSomething() {
TelnetSession session = new TelnetSession();
session.open("username", "password");
session.execute("blah");
session.close();
}
}
在許多類中,我必須聲明並打開會話,然后在最后關閉它。 我寧願用注釋做點什么,但我不知道從哪里開始。 其他人如何做這樣的事情:
class MyService {
@TelnetTransaction
public doSomething() {
session.execute("blah");
}
}
其中使用@TelnetTransaction
注釋的方法實例化,打開並傳入TelnetSession
對象。
謝謝,
詹姆士
之前和之后是面向方面的編程。
Spring處理與方面的事務。 給Spring AOP或AspectJ看一看。
除非你正在做一些有趣的事情,否則你最終會得到一個委托給服務對象的對象,並執行。 兩種類型都沒有理由實現完全相同的接口,並且沒有理由說明它們不應該這樣做。 有很多方法可以達到這個目的:
java.lang.reflect.Proxy
要求你添加一個接口。 正如duffymo所說,AOP是要走的路。 我建議你復印一份
它由Spring提交者Ramnivas Laddad編寫,它涵蓋了Spring AOP和“真正的”AspectJ,並且可以理解。
對於開發,您應該使用AspectJ Developer Tools for Eclipse或更好的SpringSource Tool Suite (它包含AJDT)。
如果你已經使用Spring AOP將是你最好的選擇。 如果需要運行時注入,則需要使用AspectJ。 我記得讀過Spring不支持那種注射
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.