使用运行时构造函数参数的 InheritanceBasedAopConfigurer

2024-02-08

我有一个由 Spring.NET 上下文拥有的(原型)类,它是使用带有运行时构造函数参数的 AutoProxy 创建的。它像这样被实例化。

var context = ContextRegistry.GetContext();
var myClass = context.GetObject("myclass", new object[]{ myRuntimeConstructorArgument }) as MyClass;

这个类有一些内部逻辑,它捕获由类方法处理的事件,如下所示:

// MyClass owned by Spring.NET context
public class MyClass {

  // InnerObject not owned by Spring context
  private InnerObject innerobject;

  // argument object not owned by Spring context
  public MyClass(ObjectNotOwnedBySpring myRuntimeConstructorArgument) {
     ...
     this.innerobject = new InnerObject();
     this.innerobject.SomeEvent += this.handleSomeEvent;
  }

  // I would like to intercept this event handler
  public virtual void handleMyEvent (object sender, EventArgs args)
  {
    // do stuff
  }
}

我尝试使用 AOP 通过拦截 handleMyEvent 方法来消除抽象泄漏(由外部组件中的错误引起)。由于 Spring.Aop 使用基于代理的方法来拦截方法调用,因此内部方法调用不会被拦截。我明白那部分。

如果我理解的话文档 http://www.springframework.net/doc-latest/reference/html/aop.html#aop-proxy-mechanism正确的是,这就是基于继承的AopConfigurer通过使用“真正的”基于继承的 AOP 机制发挥作用。从文档中:

在调用基类方法之前,拦截建议直接添加到方法体中。

正是我需要的!

不幸的是,我无法让 Inheritance BasedAopConfigurer 与运行时构造函数参数很好地配合:

Spring.Objects.Factory.ObjectCreationException:创建名称为“myclass”的对象时出错 > 在“文件 [spring-aop-config.xml] 第 36 行”中定义:无法解析匹配的构造函数。

InheritanceBasedAopConfigurer 不支持运行时构造函数参数吗?或者这是 InheritanceBasedAopConfigurer 的错误用例?


None

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

使用运行时构造函数参数的 InheritanceBasedAopConfigurer 的相关文章

随机推荐

  • Java 语言规范第三版勘误表

    我广泛使用 JLS 作为学习和教学资源 但我注意到其中存在一些错误 有一些简单的拼写错误 例如金龙5 1 4 http java sun com docs books jls third edition html conversions h
  • 负载均衡 Amazon EC2 上的节点 socket.io

    我有一个在 Amazon AWS 上运行的标准 LAMP EC2 实例设置 为了满足实时更新的需求 我还安装了 Node js socket io 和 Express 现在正处于应用程序负载平衡的阶段 这一切都有效 但我的套接字却不起作用
  • 删除非 ASCII 字符(使用 Microsoft.Office.Interop.Excel)

    我正在尝试从 excel csv 文件中删除所有非 ascii 字符 在线阅读和搜索后 我发现了一篇帖子 其中给了我代码xlWorksheet UsedRange Replace u0000 u007F 删除字符但每次但字符仍然存在于文件中
  • 如何在管道内使用“if”语句

    我正在尝试使用if管道内 我知道有where alias 过滤器 但是如果我想仅在满足特定条件时才激活过滤器怎么办 我的意思是 例如 get something someone eq somespecific format table 如何
  • 从 gtsummary 包中的 tbl_summary 对象获取 LaTex 输出的最佳方法[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我正在努力准备一份文档出版 并且正在 LaTeX 中完成所有工作 然而 我现在才注意到gtsummary尚不支持其表格的 LaTeX
  • 帧持续时间 - UIImage 数组到电影

    我已经通过此代码成功完成了 将 UIImage 数组导出为电影 部分 在导出的视频中 每个图像显示 1 秒 但我需要 每个图像将在导出的视频中显示 5 秒 我需要做的最小改变是什么 这是我的代码 var outputSize CGSize
  • java正则表达式模式分割逗号

    String line a 1 b 1 2 c d 1 e 1 11 String tokens line split for String t tokens System out println gt t System out print
  • 异常日志文件的最佳位置 (Windows)

    异常日志应该放在哪里的问题已经在这里讨论过一两次 或多次 其中一个建议是应用程序永远不应该写入安装文件夹 但是 如果我将日志放在 appdata 中的某个位置 这意味着每个用户都有自己的一组日志 我更喜欢将所有日志放在一个位置 在最新的 M
  • 循环进口地狱

    Python 是一种极其优雅的语言 好吧 除了 除了进口 我仍然无法让它按照我认为自然的方式工作 我有课MyObjectA这是在文件中mypackage myobjecta py 该对象使用一些实用函数 这些函数位于mypackage ut
  • 停止将 typescript-eslint/explicit-module-boundary-types 应用于不使用 Typescript 的 vue 组件

    我在用着vue我刚刚更新了 typescript eslint eslint plugin 3 10 1 我的项目包含几个组件 其中一些正在使用javascript和别的typescript Warning 我对里面的方法有这个警告non
  • 在 SQL LIKE 语句中使用变量

    我有一个存储过程 MSSQL 2k5 它将为 LIKE 子句接受一个变量 如下所示 DECLARE SearchLetter2 char 1 SET SearchLetter t SET SearchLetter2 SearchLetter
  • 为什么glBufferSubData需要等到VBO不被glDrawElements使用?

    在 OpenGL Insights 中 它说 OpenGL 驱动程序必须等待 因为使用了 VBO 由上一帧的 glDrawElements 绘制 这让我很困惑 据我所知 glBufferSubData会将数据复制到临时内存 然后再传输到GP
  • 使用 Box Windows SDK v2 库对 C# 桌面应用程序中的 Box 进行身份验证

    看起来这应该是一件简单的事情 但我找不到示例或足够详尽的文档来弄清楚 我有一个 C 桌面应用程序 我想通过 Box API 与 Box 集成 我认为使用 Box Windows SDK v2 for NET 将是最佳选择 有人能给我指一个适
  • Php:检查电子邮件内容是否为垃圾邮件

    我正在创建一个新闻通讯功能 允许用户发送电子邮件 由于存在恶意人员想要发送垃圾邮件 因此我希望能够检查并查看创建的邮件是否是垃圾邮件 我已经研究了几种不同的方法 例如尝试垃圾邮件杀手 但您需要完整的电子邮件 而我稍后才会得到 或者您需要安装
  • 即使文件不存在,为什么 SELECT INTO OUTFILE 也会给出文件存在错误?

    该文件肯定不存在 但我还是收到错误 I do rm tmp records materialized view txt mysql gt SELECT FROM records materialized view INTO OUTFILE
  • AngularJS:如何获取模板的 $location.path

    我需要模板中 url 的当前路径 location path 的内容 但不是通过控制器 因为我有很多控制器 并且我不想重复声明 scope currentUrl location path 感谢您的建议 AngularJS 模板只能看到范围
  • 用于未定方程组的 C++ 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我一直在寻找一个 C 库来解决这样的不确定系统 q 是向量 w x y z 变量和 a b c d 常
  • 使用 RxJs groupBy 以对象作为键

    我正在尝试使用groupBy使用 RxJ 我需要使用对象作为键 如果我不这样做 我会使用例如这样的简单字符串 var types stream groupBy function e return e x x is a string 然后一切
  • php可以检测javascript是否打开吗?

    我有动态创建的页面 现在我想添加ajax功能 所以我想添加if语句来更改输出 if js is on echo js is on else echo js is off 有什么办法可以检测js是否与php一起打开吗 或者有什么方法可以通过
  • 使用运行时构造函数参数的 InheritanceBasedAopConfigurer

    我有一个由 Spring NET 上下文拥有的 原型 类 它是使用带有运行时构造函数参数的 AutoProxy 创建的 它像这样被实例化 var context ContextRegistry GetContext var myClass