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