问题标签 [aspect]
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.
android - 取消 Aspect 中的方法执行(已被“之前”捕获)
基本上我试图在一个方面取消方法执行。所以,这是我的程序:我有
发件人应用程序
接收器应用程序(我们称之为中央监视器)
在发件人应用程序中:我有,
- 一个活动(在这个活动中,我有一个名为callMethodA()的方法)
- 一个方面(在这方面,我在 callMethodA() 执行之前捕获,在这个之前的结构中,我正在启动服务)
- 一个Service(这个Service启动的时候,基本就是通过Broadcast的方式给Receiver App发送一个String)
在接收器应用程序中:我有:
- 一个活动(当发送者应用程序广播字符串时,它会接收广播接收器的广播并将字符串放入检查某些条件的自动机中,当自动机完成时,将结果字符串广播回发送者应用程序)
所以这是我的实际问题:
当 Sender App 收到 Result 字符串时(在发送者的 Activity 中),如果 Result 是 Success,那么我想允许callMethodA()被执行(这可以通过什么都不做来完成,因为我们捕获了callMethodA()执行之前,如果我们什么都不做,那么这个方法将被执行。)但是如果结果是失败,那么我希望这个方法不被执行,并且我希望整个程序继续运行(我的意思是这个广播结果,callMethodA( )不必执行,可以根据自动机结果在下一个广播结果上执行),我也想在方面取消它。
简单地说,请教我如何取消某个方面的方法执行。
这是发件人应用程序代码:
Sender1Activity.java
senderService.java
Test.aj(发件人方面)
接收器应用代码如下:
ReceiverActivity.java
c# - 转换为 crfsharp 的数据格式...
我有一个大约 250000 条酒店评论的评论数据集,我计划使用 crfsharp dll 从中提取方面,但是我拥有的数据是普通文本段落形式,我需要将其转换为 crfsharp 的格式所以我可以训练和测试数据以提取方面。那么有人可以告诉我什么是最好的方法,我正在考虑编写一个用于数据格式转换的小程序。我想知道的另一件事是 CRF sharp 是否可以使用它拥有的 crf 模型进行方面提取?我正在使用 c#。
refactoring - 重构和面向方面编程的区别
我很难理解重构和面向方面编程之间的区别。
我了解面向方面的编程旨在通过分离横切关注点来增加模块化,其中还包括代码重复、缠结等。
但重构也是在不改变其行为的情况下对代码进行重构的过程,它还包括代码重复等。
我理解错了还是有人可以简单地向我解释如何理解这两个?谢谢..
logging - 启动每个方法/函数后在 Groovy 中进行跟踪
我遇到了与 In Groovy 中相同的问题。 有没有办法装饰每个类以添加跟踪? 但是这个答案现在已经有好几年了,所以我想知道现在是否有更好、更简单的方法可以在方法执行之前、之后或周围执行一些代码。我更喜欢带有注释的东西
或者
这样当我调用 bar() 时,会在打印“in bar”之前执行一些代码(由 TraceLog Aspect 或类似定义)。groovy 有可能吗?
c# - 如何用假方面替换 PostSharp Aspect 以进行单元测试
我有一个像下面这样的类:
来自LogAttribute
PostSharp OnMethodBoundaryAspect
。我希望将所有实例LogAttribute
换成不做任何事情的方面的一些伪造/模拟版本,以便我可以SomeClass
独立于方面代码运行进行单元测试。在集成测试期间,我将让方面正常运行。有谁知道如何实现类似的东西?
请注意,此项目在单元测试项目之外使用 Moq 进行单元测试,并使用 Ninject 进行 DI。
谢谢!
spring-aop - Spring Aspect 递归调用
我必须创建方面,应该在抛出自定义异常后再次调用具有相同参数的方法,该异常被抛出,但方法递归调用不能超过 5 次。有没有可能做到这一点?
c# - Postsharp 获取截获的方法返回类型
如何获取拦截方法的返回类型?我正在编写一个方法级别的缓存机制,我想使用 postsharp 来拦截方法调用。但是,我需要能够将存储的对象转换为原始方法类型。
perl - 围绕生产脚本的 Perl 测试包装器
出于测试目的,我想创建一个包装脚本,它可以在不更改原始脚本的情况下向现有脚本添加功能。我的问题是,这在 perl 中是否可行,我该怎么做?
包装脚本将执行以下操作:
生产脚本将保持不变并且完全独立:
当然,我希望诊断和方面编织能够处理生产代码。我已经尝试了一些简单的事情,但它们没有用,代码甚至没有运行。
annotations - 基于 Aspect 从 Spring AOP 返回 HTTP 状态 400
我有一个有趣的问题(至少从我目前的角度来看这是一个问题)。
我有一个暴露接口的 RESTful Web 服务。在我们的环境中,我们使用注解来装饰请求处理程序,例如 -
我们需要有一个 CXF 拦截器/方面(spring AOP)在处理程序之前执行(如上),并检查 HttpServletRequest 的令牌类型。如果令牌类型(或装饰处理程序的任何其他属性)不是注释中指定的类型,则停止执行并返回 HTTP 状态 400(错误请求)。像上面这样的请求处理程序大约有 20 个。
我在这里面临的问题是,在编写了基于方面的 spring AOP 之后,(如下所示)我能够在 getRecordInfo() 执行之前捕获请求,但是当我尝试返回 400(或)抛出异常时,HTTP客户仍然看到 200 -
我检查了日志文件,我可以看到以下日志条目,确认请求处理程序和方面都被调用 -
尽管有消息,客户端仍然看到 200 并且服务器日志显示其他基于 CXF 的拦截器正在执行的证据。
这是定义切入点的 Spring 上下文 XML -
在这种情况下,如何使用 Spring AOP 方面返回 HTTP 400,取消任何其他拦截器的执行?
我也在考虑编写一个 Apache CXF 拦截器来捕获调用并在它到达请求处理程序之前返回 400,但是我不确定,如何使用拦截器我可以知道应该执行哪个请求处理程序以及注释是什么装饰请求处理程序。CXF 拦截器是否提供任何方法来知道最终将执行哪个请求处理程序?
我在看这里,(https://cxf.apache.org/docs/interceptors.html)但还是没有找到。
任何帮助表示赞赏。
问候,
(*Vipul)() ;
weblogic - AspectJ 与 weblogic
我正在尝试使用 LTW 在 Weblogic 上运行 AspectJ。我的切入点是针对公共构造函数和方法,建议针对的是 Before、AfterReturning 和 AfterThrowing。当我访问一个简单的“Hello World”jsp 时出现以下错误:
这是我的 aop.xml 文件:
这是我的方面文件:
这个方面被编译(使用普通的 javac 编译器)成 foo.jar
我通过添加以下内容来运行 Weblogic:
我相信这很可能是类路径/类加载器问题,因为 AspectJ 无法在 DefaultAspect 类中创建“aspectOf()”方法
请帮忙。