..
在移动就看你如何创建自己的切入点和方面的意见,这是非常重要的是了解如何代理。
代理无非是一个包装(容器),其中包含一个对象,并公开所有公共medodi对象更多。
当你调用代理上的方法该方法的实际执行被委托的对象总结,从而使得代理的存在完全对用户透明。
代理使用Spring AOP实现比简单的委托方法也与各种管理的意见处理。
我们知道如何做了代理实现一个非常简单的。 首先,我们创建一个简单的接口:
{公共接口SimpleInterface
公共无效F1();
公共无效F2();
}
我们创造出一个简单的实现:
SimplePojo类{public类实现SimpleInterface
@覆盖
公共无效F1(){
System.out.println(“F1”);
F2();
}
@覆盖
公共无效F2(){
System.out.println(“F2”);
}
}
我们注意到,该方法F1()使得对F2()调用。
现在让我们创建代理,前面已经说过,我们需要创建一个对象的容器和揭露它的所有方法,则代理将实现接口,然后委托SimpleInterface所有的方法调用实际的对象:
SimpleProxy {公共类实现SimpleInterface
私人SimpleInterface委派;
公共SimpleProxy(SimpleInterface代表){
超级();
this.delegate =代表;
}
@覆盖
公共无效F1(){
System.out.println(“委托F1 ()");
delegate.f1();
}
@覆盖
公共无效F2(){
System.out.println(“委托F2 ()");
delegate.f2();
}
}
在我们的简单的例子,代理所做的就是打印一条消息说,这是委托调用。
现在我们创建一个主要的测试,看看我们的代理:
公共类主要{
公共静态无效的主要(字串[] args){
/ /创建一个bean实例
SimpleInterface realBean SimplePojo类=新();
System.out.println ("#####豆#####");
realBean.f1();
的System.out.println();
realBean.f2();
的System.out.println();
/ /创建一个代理实例
SimpleInterface SimpleProxy代理=新(新SimplePojo类());
System.out.println ("#####代理#####");
proxy.f1();
的System.out.println();
proxy.f2();
}
}
在第一个代码块给出了下面的输出:
#####豆##### F1 F2 F2现在人们所期望的是,第二块输出如下:
代理##### ##### 委派F1() F1 委派F2() F2 委派F2() F2Invce不是! 输出将如下:
代理##### ##### 委派F1() F1 F2 委派F2() F2正如我们可以看到调用该方法F1()是方法F2()不通过代理,因为一旦你有委派的方法执行到实际对象的所有内部通话不会被窃听通过代理。

| |
Linux操作系统(课程)
完整指南开源系统。 从49€。 |
| |
PHP(课程)
全部课程用于创建动态Web站点。 从49€。 |
| |
Ruby和Ruby on Rails的(课程)
创建Ruby和RoR的软件和Web应用程序。 从39€。 |