'There is a type of Spring proxy that can replace the object being returned by the method' 是什么意思?
What is meant by 'There is a type of Spring proxy that can replace the object being returned by the method'?
我正在进行模拟考试,我不太理解其中一个答案,但没有解释为什么它是正确的。
(由 kriegaex 从此处向下编辑,添加了以下评论中的问题以及一些格式和改写,以使文本更加连贯和可读。)
- 问题: "Which below statement is true about Spring's proxy feature?"
- 答案: "There is a type of Spring proxy that can replace the object being returned by the method."
我了解Spring AOP 可以使用两种类型的代理:
- JDK 动态代理
- CGLIB 代理
据我了解,这些是 Spring 中大量使用的两种代理类型。例如,当使用 @Transactional
或创建方面 (@Aspect
) 时。
我对给出的答案的理解是他们指向@Around
方面。但是,我不明白为什么他们称它为 "type of Spring proxy"。方面是代理吗?因此,我对使用 JDK 或 CGLIB 代理的方面的理解是否不正确?
如果您提供了所有可能的答案,包括不正确的答案,问题会更容易理解。但鉴于正确的(这听起来确实很奇怪),我可以告诉你以下内容:
- JDK 和 CGLIB 代理都有相同的目的:包装和替换原始对象,以便能够将一些拦截器注册到它们的方法调用中,无论是通过 Spring AOP 还是其他方法。
- 是的,两种代理类型都在 Spring 中大量使用,JDK 代理用于 类 实现接口,CGLIB 代理用于 类 不实现任何接口。或者,您可以配置 Spring 以将 CGLIB 代理也用于接口类型。
- 没有“
@Around
方面”这样的东西,只有 @Around
建议类型(除了其他建议类型,例如 @Before
和 @After
)。
- 不,方面不是代理。但是 Spring AOP 使用代理来实现其通过委托模式执行 AOP 的方式,这与不使用任何代理但使用直接字节码检测来实现其目标的 AspectJ 相反。
在 Spring 文档中查找更多信息。
我正在进行模拟考试,我不太理解其中一个答案,但没有解释为什么它是正确的。
(由 kriegaex 从此处向下编辑,添加了以下评论中的问题以及一些格式和改写,以使文本更加连贯和可读。)
- 问题: "Which below statement is true about Spring's proxy feature?"
- 答案: "There is a type of Spring proxy that can replace the object being returned by the method."
我了解Spring AOP 可以使用两种类型的代理:
- JDK 动态代理
- CGLIB 代理
据我了解,这些是 Spring 中大量使用的两种代理类型。例如,当使用 @Transactional
或创建方面 (@Aspect
) 时。
我对给出的答案的理解是他们指向@Around
方面。但是,我不明白为什么他们称它为 "type of Spring proxy"。方面是代理吗?因此,我对使用 JDK 或 CGLIB 代理的方面的理解是否不正确?
如果您提供了所有可能的答案,包括不正确的答案,问题会更容易理解。但鉴于正确的(这听起来确实很奇怪),我可以告诉你以下内容:
- JDK 和 CGLIB 代理都有相同的目的:包装和替换原始对象,以便能够将一些拦截器注册到它们的方法调用中,无论是通过 Spring AOP 还是其他方法。
- 是的,两种代理类型都在 Spring 中大量使用,JDK 代理用于 类 实现接口,CGLIB 代理用于 类 不实现任何接口。或者,您可以配置 Spring 以将 CGLIB 代理也用于接口类型。
- 没有“
@Around
方面”这样的东西,只有@Around
建议类型(除了其他建议类型,例如@Before
和@After
)。 - 不,方面不是代理。但是 Spring AOP 使用代理来实现其通过委托模式执行 AOP 的方式,这与不使用任何代理但使用直接字节码检测来实现其目标的 AspectJ 相反。
在 Spring 文档中查找更多信息。