在服务层中,我有一个类似于:
的类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
对象。
谢谢,
詹姆斯
答案 0 :(得分:13)
之前和之后是面向方面的编程。
Spring使用方面处理事务。给Spring AOP或AspectJ看一看。
答案 1 :(得分:2)
除非您正在做一些有趣的事情,否则您希望最终得到一个委托给服务对象的对象,并执行。两种类型都没有理由实现完全相同的接口,并且没有理由说明它们不应该这样做。有很多方法可以达到这个目的:
java.lang.reflect.Proxy
要求您添加界面。答案 2 :(得分:1)
正如duffymo所说,AOP是要走的路。我建议你得到一份
它是由Spring提交者Ramnivas Laddad编写的,它完全涵盖了Spring AOP和“真正的”AspectJ。
对于开发,你应该使用AspectJ Developer Tools用于Eclipse或更好的SpringSource Tool Suite(它包含AJDT)。
答案 3 :(得分:0)