java - 有人可以解释一下这个和目标切入点指示符吗

标签 java spring spring-mvc spring-aop aop

我是 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/

相关文章:

java - 如何将一本书分成章节

java - 这可能吗? : HashMap<String, 字符>

java - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : Unknown column 'topic_id' in 'field list'

java - 如何在所有微服务中维护相同的 Spring Boot 版本?

java - Spring MVC 异步方法 (RXJava)

java - 使用 Shiro 和 Spring WebMVC(Java8、Spring 4.x)从 WebApp 注销所有仍登录的用户

java - Android Parcelable 无法实例化类型

java - 什么是NullPointerException,我该如何解决?

java - 意外消息 - 没有使用连接拦截器注册端点

java - Spring 启动: Reading data using Spring Data JPA returns incorrect values