gpt4 book ai didi

java - 编译/加载时间用 Spring 编织

转载 作者:搜寻专家 更新时间:2023-11-01 02:26:32 25 4
gpt4 key购买 nike

docs解释一下,必须通过使用 <context:load-time-weaver/> 来启用 LTW xml指令或使用@EnableLoadTimeWeaving注解。然而,我两者都没有做过,但我仍然看到我的项目中的方面是正确编织的!

  1. 在这种情况下,我不认为它们是在编译时编织的(但它们是吗?),所以肯定是加载时编织?
  2. 即使是这样,它如何在加载期间自动选择编织方面?如果没有使用文档所说的上述方法之一打开这些方面,它们不应该保持未编织状态吗?
  3. 我的类路径中有 aspectj-weaver,但无论如何都不足以选择这两种编织类型,对吗?

最佳答案

Spring AOP 不依赖AspectJ 字节码编织。它只是从 AspectJ 项目中借用了用于定义方面的注解。它是一个单独实现的框架,使用运行时代理来实现方面。如果你有 <aop:aspectj-autoproxy />在您的应用程序上下文中,spring 使用代理来实现在容器中的 bean 上定义的受支持的方面。

代理只能实现实际AspectJ 系统全部功能的子集,基本上是包装方法的建议。由于其性质,代理具有以下限制:

  • 仅拦截外部调用(同时违反代理边界)
  • 拦截 public仅限成员(member)(private/protected 无法拦截)
  • 不知道本地电话(或使用 thissuper 的电话)

例如,如果您希望能够为字段提供建议,则需要启用 Native AspectJ 的使用.

关于java - 编译/加载时间用 Spring 编织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21472679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com