问题标签 [method-interception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 方法拦截以获取属性名称
我正在寻找一个实用程序类或库,它以类型安全的方式为我提供属性名称。我有类似以下的想法:
要正确实施这种方便的方法,恕我直言,需要做很多工作。由于最终类等的处理可能非常复杂(参见 mockito、easymock 等)
java - 基准测量的方法拦截框架
在我急于编写这样的框架之前,我想知道是否有人遇到或开发过这样的框架。
在我们的项目中,我们已经达到了一个重点是性能改进的地步。我是一个 spring RESTful 微服务的所有者,其中有控制器,委托给使用 spring 存储库的服务。很标准,没什么特别的。
这就是我希望能够做到的。我不想注释我测量的方法,也不想在我想检查的方法的开头和结尾添加显式计时器调用。代码与日志打印一样“脏”。
我想做的是在外部配置文件中列出要测量的方法,并在 spring 的帮助下对其进行拦截和测量。将针对生产/评估环境中的不同方法收集基准。稍后我想要一个 UI 来可视化每种方法的不同结果。在这个 UI 中,我可以发现异常情况,即调用耗时最长或最短的时间。从那里我可以深入到服务层,发现我的服务中的软点,并从那里深入到存储库调用的性能不佳的查询。
在没有指定工具的情况下(我拒绝相信至少有一百个可用),我的计划是使用 Spring AOP 或 AspectJ 来拦截我列出的方法。在每次拦截中,我都会放置调用基准的日志打印。稍后我将利用 Kibana 找出每种方法的弱点,然后深入研究。
我仍然需要了解方面如何完成的实现细节,以及如何使用 kibana 准确设置数据可视化以实现该目标。
如果有人能有所启发——提供一个适合我需要的框架,或者一些经验或代码来帮助实现我的目标,或者提供一种替代方法或另一种方法来进行这些测试,我希望非常感激地听到它!谢谢一个头!
c# - CodeCop 和 .NET 4.6 - 为什么不运行?
我最近尝试了 Code Cop 1.3.1 - 一个方法拦截器。
但是在安装 .NET Framework 4.6 时不会运行。
c# - Code Cop 应用程序只是挂起
我使用 Code Cop(一种方法拦截方法)编写了一个测试应用程序。
然而,当我运行我的第一个应用程序时,我遇到了一个障碍,应用程序将启动并挂起,没有关于正在发生的事情的信息。
我完全遵循了代码,并且能够在另一台机器上运行相同的代码。
没有输出错误信息,它只是挂起。
有谁知道我如何能够解决或调试这个问题?
c# - AutoFac拦截,如何区分内部和外部
所以我试图在使用autofac的同时实现拦截的概念。我没有做任何花哨的事情,比如实现动态拦截,每个类我都有具体的代码。
我的代码(不是我的真实代码,我在网上找到了这个,但它说明了我的问题
我的问题是,我希望我的 ProductManager 接收 IProductService 的“CachedProductService”,我希望我的 CachedProductService 接收 IProductService 的“DefaultProductService”。
我知道一些解决方案,但它们似乎都不完全正确。这样做的正确方法是什么?
谢谢!迈克尔
javascript - Rhino 方法快门/拦截器
我正在寻找一种方法来拦截从 JavaScript(Rhino/Java)到任何和所有 Java 对象(Java 方法)的所有方法调用。
我想要:
- 计算它们(按方法名称和参数)
- 如果不允许该方法,则能够抛出异常
Rhino-Engine 内部有办法解决这个问题吗?
我知道还有其他选项,例如面向方面的编程库,但我想避免这些。
我也尝试替换NativeJavaMethod
Rhino 引擎中的实现,但它与系统绑定得很深,无法替换。
如果只有一个工厂(比如 ContextFactory),那就太好了。
或类似的方法调用拦截器ContextFactory.doTopCall(...)
,但适用于所有 JS-2-Java 调用。
postsharp - Postsharp MethodInterceptionAspect 获取方法返回值
我有一个MethodInterceptionAspect
(PostSharp)的实现,
但是当我在覆盖OnInvoke
方法中时,它args.Method
是空的,我需要知道方法返回值类型,
有人知道吗?
structuremap - 使用 StructureMap DynamicProxyInterceptor 时如何从容器中解析 IInterceptionBehavior 实例?
我正在从 Unity 迁移到 StructureMap。我已经使用了 Unity 的 InterceptionBehavior。
我以为我可以将其切换为使用 StructureMap .InterceptWith
,DynamicProxyInterceptor
但是我的拦截器具有依赖关系,我无法弄清楚如何使用 StructureMap 组合拦截器。
目前我唯一能想到的可能是一个解决方案是从静态 IoC 类中公开我的 IContainer 并在我的拦截器中手动解决我的依赖项。
最终我可能会用装饰器替换我的动态代理,但我还没有到那个阶段。我只是想尽快让它重新启动并运行,这样我就可以在开始进行其他更改之前证明其他更改都是成功的。
javassist - 字节码工具:向类添加方法拦截器(不是代理)
Javassist proxyFactory 可以在运行时使用方法拦截器创建代理。但是如何通过修改类文件给类静态添加方法拦截器呢?
例如,类 Foo 有 100 个方法,在调用 Foo 实例上的任何方法之前,需要检查 Foo 实例是否已初始化。
如何修改类文件以添加此类方法拦截器?一种方法是在每个方法的开头添加代码。有没有更好的办法?
其他字节码工具,例如 cglib,......?
c# - Postsharp AOP 方法拦截方面不起作用
我试图添加一个基于权限的属性,以供我应该使用的使用 WPF 构建的现有 Windows 应用程序使用。这个想法是拦截对某些命令的 Canexecute 方法的调用并返回 false - 这将禁用按钮 - 所以我在一个解决方案上做了一个简单的例子,我添加了 Postsharp 的 Nuget 包并覆盖 OnInvoke 方法,如下所示:
无论如何,在小示例中,每件事都可以正常工作,在简单示例中使用不同的方法,例如是否使用 devexpress。但是当添加到现有应用程序时,它根本不起作用,更准确地说:永远不会命中 OnInvoke 方法,而 Attribute 的 Constructor 已经被调用。
我不确定出了什么问题,但另一个信息是我发现现有的解决方案已经在使用 Postsharp 进行日志记录。所以我使用了与项目使用的版本完全相同的版本,即 4.2.26,方法是从 Nuget 包管理器中选择此版本。
我尝试过的另一件事是我已经实现了 CompileTimeValidate 方法并有目的地添加了一个应该在构建时引发异常的代码。在 Small -Working- 示例中,它在构建时引发了异常。在尚未工作的现有应用程序中。在构建时它不会引发任何异常!!!。
更新:我正在使用如下: