Spring AOP中代理的使用

2024-02-19

我正在读一本书,其中谈到启用AspectJSpring AOP 的支持。

下面是书中的一段话:

要在 Spring IoC 容器中启用 AspectJ 注释支持,您只需定义一个空的 bean 配置文件中的 XML 元素 aop:aspectj-autoproxy。然后Spring会自动 为与 AspectJ 方面匹配的任何 bean 创建代理。

对于接口不可用或未在应用程序设计中使用的情况,可以 依赖CGLIB创建代理。要启用CGLIB,需要设置属性proxy-target-class=true in <aop:aspectj-autoproxy />.


我无法理解第二段。 '是什么意思接口不可用'。谁能用一个例子来说明这一点?


Spring AOP 使用 JDK 动态代理或 CGLIB 来为目标对象创建代理。

根据 Spring 文档,如果您的目标至少实现一个接口,则将使用 JDK 动态代理。但是,如果您的目标对象未实现任何接口,则会创建 CGLIB 代理。

这是强制创建 CGLIB 代理的方法(set proxy-target-class="true"):

 <aop:config proxy-target-class="true">
    <!-- other beans defined here... -->
 </aop:config>

当使用 AspectJ 及其 autopoxy 支持时,您还可以强制使用 CGLIB 代理。这就是<aop:aspectj-autoproxy>使用,这里“proxy-target-class”也必须设置为true:

<aop:aspectj-autoproxy proxy-target-class="true"/>

请参阅代理机制部分使用 Spring 进行面向方面编程 http://static.springsource.org/spring/docs/2.5.x/reference/aop.html#aop-proxying文档以获取更多详细信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring AOP中代理的使用 的相关文章

随机推荐

  • React SPA 中的 msal - 使用从 AcquireTokenRedirect 收到的访问令牌

    我有一个 React SPA 并且正在使用 msal 通过 loginRedirect 对 Microsoft 用户进行身份验证 登录后 我使用 acquireTokenSilent 静默获取访问令牌来调用 Web API 当获取访问令牌失
  • 在 android 中将一个视图放置/重叠(z-index)在另一个视图之上

    我有一个线性布局 由 imageview 和 textview 组成 在线性布局中一个在另一个下面
  • 我可以在 Intranet 中访问 ASP.NET 开发服务器吗?

    我正在测试 ASP NEt 站点 当我执行它时 它会启动 ASP NET 开发服务器并打开一个页面 现在我想在我拥有的内网中测试它 我可以使用这台服务器吗 或者我需要在这台机器上配置 IIS 我需要配置一些东西才能让它工作吗 我已将 loc
  • 如何使用位图将图像分享到社交媒体?

    我需要从 RecyclerAdapter 共享图像 因为该图像最初并不存在 即使用适配器在 Activity 中加载 如何将位图分享到社交媒体 每次我在应用程序中单击共享时 都会显示 没有应用程序可以执行此操作 feedItemView s
  • 删除 ToolStripControlHost 周围的空白

    我正在尝试删除 toolstripcontrolhost 控件周围的空白 该控件在上下文菜单中托管日历控件 请参阅附图和代码 VB Dim menuItem As ToolStripMenuItem New ToolStripMenuIte
  • 在 VBA-Selenium 中按 Enter 和向下键

    我想在 vba selenium 中编写一段代码以按 Enter 和向下箭头键 所以你可以帮助我吗 我已经尝试过下面的代码 但它不起作用 selenium keyDownNative 40 For Down Arrow key seleni
  • 如何在Azure VM上推出最新的.net框架?

    我使用 azure 门户创建了一个 Azure VM windows sever 2016 它安装了 net 4 6 2 现在我想在其上推出最新的可用 net 框架 4 7 4 7 1 一种选择是下载所需的框架并将其安装在虚拟机上 我确信应
  • 子进程的 waitpid 未成功

    我正在使用启动一个进程execv并让它写入文件 我同时启动一个线程来监视文件 以便它的大小不超过使用的特定限制stat st size 现在 当达到极限时 我waitpid对于子进程 但这会引发错误 并且我在后台启动的进程变成僵尸进程 当我
  • 同一个表上的内连接和左连接

    我有两个表 A 和 B 其中有两列 x 和 y 我想在 x 上内连接 A 和 B 但只保留 A 列 y 的值 左连接 我正在寻找一种组合两个 y 列的方法 不能只在 select 语句中指定 A y 我怎样才能做到这一点 Example T
  • Knockout.js:更新绑定?

    当我在 ko applyBindings 之后将任何新元素注入 DOM 时被调用 那么淘汰赛将无法识别这些新元素 我可以理解为什么会发生这种情况 它们只是没有被淘汰索引 因此 起初我认为在添加新元素后再次调用 ko applyBinding
  • 深入理解MVC.net中的延迟加载和错误处理

    我试图对以下问题写出完整详细的答案 为什么 Dispose 有效 而不是 using var db new DataContext https stackoverflow com questions 23110719 why does di
  • 为什么 WordPress 被认为编程很差劲? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • .NET 中的 ApplicationException 有何用途?

    为了引发异常 我通常使用内置异常类 例如ArgumentNullException and NotSupportedException 但是 有时我需要使用自定义异常 在这种情况下我会写 class SlippedOnABananaExce
  • 将所有内容都纳入范围内会影响 Angular 性能吗?

    我想知道是否有人对在模块内部使用 scope 与普通 JavaScript 对象有什么建议 例如 我在控制器中有一些变量 为了方便起见 我将它们附加到 scope 但它们可能只是控制器内的常规对象 没有任何功能差异 我的问题是 当 Angu
  • 颠覆和依赖

    我正在尝试为以下问题找到可行的策略 我们有几个依赖于我们框架的网络项目 所有内容都存储在我们的 SVN 中 并拥有自己的项目和所有必要的目录结构 主干 标签 分支 在一个示例中 我们有项目 webprj01 和 webprj02 并且我们有
  • 如何将 routerLinkActive 与空 routerLink 一起使用

    我有以下选项卡栏链接 第一个应该是空的
  • 如何使用 POCO 通过 HTTP 基本身份验证进行 HTTP Post?

    我正在尝试使用 POCO 进行 HTTP 基本身份验证 明文用户名和密码 的 HTTP Post 我找到了一个 Get 的示例并尝试修改它 但作为一个菜鸟 我认为我已经破坏了它的实用性 有人知道怎么做吗 是的 我已经看到了另一个关于此的问题
  • 使用 ctest/cmake 测试非零退出状态

    感兴趣的应用程序是一个编译器 当它在源代码中遇到错误时 它会返回非零退出代码 编译器的单元测试由故意触发错误的小片段组成 用于添加测试的函数是 function add compiler test test name options add
  • 检测 AngularJS 中自定义过滤器何时完成[重复]

    这个问题在这里已经有答案了 我有一个自定义过滤器函数 我正在调用 ng repeat 指令 div app title div 这显然会影响 appList 中每个应用程序的 assetFilter 函数 过滤完成后 我想运行另一个函数 如
  • Spring AOP中代理的使用

    我正在读一本书 其中谈到启用AspectJSpring AOP 的支持 下面是书中的一段话 要在 Spring IoC 容器中启用 AspectJ 注释支持 您只需定义一个空的 bean 配置文件中的 XML 元素 aop aspectj