我是 Spring AOP 的新手,正在阅读切入点指示符的文档。这个和目标指示符对我来说听起来都一样。有人可以用更好/更清洁的例子来解释吗?谢谢
this - 限制匹配到连接点(使用 Spring AOP 时方法的执行),其中 bean 引用(Spring AOP 代理)是给定类型的实例
eg: this(com.xyz.service.AccountService)
代理实现 AccountService 接口(interface)的任何连接点(方法仅在 Spring AOP 中执行):
目标 - 限制匹配到连接点(使用 Spring AOP 时方法的执行),其中目标对象(被代理的应用程序对象)是给定类型的实例
eg: target(com.xyz.service.AccountService)
目标对象实现 AccountService 接口(interface)的任何连接点(方法仅在 Spring AOP 中执行)
链接:http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/aop.html
最佳答案
JDK 和 CGLIB 等可用的不同代理方法允许您向对象添加比它继承的类型更多的类型。例如,您可以声明一个不扩展任何类(Object
除外)并且不实现任何接口(interface)的 Foo
bean。无论出于何种原因,您都可以决定要代理此 bean 并使其实现 Bar
接口(interface)并扩展 SomeRandomType
类。这里的目标对象是 Foo
类型的 bean。 Spring 代理是一个对象,它委托(delegate)给目标 bean,共享其类型,并且还可以有更多类型,如上例所示。
因此 target
指的是被代理的 bean 而 this
指的是代理。
关于java - 有人可以解释一下这个和目标切入点指示符吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22848738/