问题标签 [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.

0 投票
13 回答
52831 浏览

function - 如何在 Scala 中分析方法?

分析 Scala 方法调用的标准方法是什么?

我需要的是一个方法的钩子,我可以用它来启动和停止计时器。

在 Java 中,我使用方面编程 aspectJ 来定义要分析的方法并注入字节码来实现相同的目的。

在 Scala 中是否有更自然的方法,我可以在其中定义一堆函数,在函数之前和之后调用,而不会丢失过程中的任何静态类型?

0 投票
0 回答
441 浏览

spring - Spring AOP 介绍 JMX 的使用

我正在使用 Spring JMX 支持来公开 MBean。此外,为了分离出 JMX 代码库,我尝试使用 AOP 的 Introductions 支持,这将允许我从业务 POJO 中取出 JMX 相关方法,并在 JMX 相关方面将它们分别模块化。虽然 JMX 支持和 AOP 的介绍对我有用,但是当串联使用时,在 Aspect 中介绍的 JMX 相关方法并没有在 MBean 中公开。

这可以通过 Spring 实现吗?还是有任何其他更清洁的方法可以启用我的 bean JMX 并且不会将与 JMX 相关的问题与我的核心代码混合在一起?

0 投票
0 回答
164 浏览

java - Weave 构造函数在运行时创建了 Aspects?

是否可以通过构造函数定义切面切入点的属性,然后在创建实例后允许它在运行时编织?还可以在运行时加载/卸载/修改特定方面吗?我计划通过 rmi 公开这方面的一些方法,以允许与客户端应用程序通信。也许这对java代理技术是可能的?

0 投票
1 回答
596 浏览

java-bytecode-asm - 在 java 运行时添加额外的代码

我正在开发一个库,我需要在运行时向我的对象的一些方法添加额外的代码。这里有两点。首先,我想添加额外代码的程序是之前由其他人编写的,我不想编辑它。其次,我的工作非常类似于在调用方法之前添加方面。

在互联网上搜索和阅读后,我发现了许多框架,如 aspectj、ASPECTWERKZ 等,可以完成这项工作,但例如 aspectj(在 spring 上下文中使用时)的问题是它没有为您提供任何 API在运行时进行编织。我还发现有一些库,如 ASM 和 javassist 等,但它们非常通用且难以学习,而我的工作更可能是方面。

所以你有什么建议?那里有什么好的图书馆吗?我对前面提到的上述库有误吗?请帮忙!

0 投票
2 回答
1352 浏览

java - 在另一个方面上下文中调用方面 - Spring AOP

是否可以在代码上调用方面,它由另一个方面动作包装。例如,我调用事务中的服务方法。事务的管理由自己的事务方面提供。我想在这个服务方法中调用日志方面

是否可以在 Spring AOP 中调用它?

0 投票
0 回答
479 浏览

spring - Spring AOP 建议 - 在调试模式下有条件

我只想在调试模式下使用 AOP 建议/切入点等(作为主全局配置:例如,当 log4j 处于调试阈值时)。

如何在 application.xml 配置或其他地方执行此操作?

我正在使用 AOP 注释,例如

@Around("PointCuts.anyCustomPublicMethod()")

如何添加到建议中,例如,

debug.equals(TRUE)

有人告诉我使用 Spring Expression Language,但我不知道该怎么做。

0 投票
1 回答
255 浏览

spring - 在 OSGI 参考中应用 AOP 方面

是否可以在 OSGI 参考中应用 AOP 方面?

我有两个捆绑包,捆绑包 A 公开了捆绑包 B 能够使用它的服务。Bundle B 有一个 bean 引用,我想对这个引用应用 AOP 方面。我想使用 JMX 进行监控。

我该如何实施?

0 投票
2 回答
127 浏览

c# - C#中的方面方向

我有一个FTPDataTransfer具有状态(FTPDataTransferState)的类。此类提供了许多传输方法,例如ReceiveData(重载)SendData,...我如何将状态更改为Ready,,Transfer...而不改变每个传输方法中的值?

0 投票
1 回答
1195 浏览

spring - Spring方面转发并取消先前的请求

这是我的问题

我想在任何 spring 控制器调用之前拦截请求,检查和修改请求 URI。之后它必须调用另一个 SPRING 控制器方法。

我使用了 mvc:interceptors 但是我想用注释来配置它,这就是我需要@Aspect 解决方案的原因。一切正常,但控制器调用了两次,用于原始请求和新请求。使用拦截器我返回 false 并取消它,我该如何处理 Aspect 类?谢谢

这是我的代码:

0 投票
1 回答
388 浏览

java - 当切点在超类上但派生类覆盖时,如何避免两次命中切入点?

很难为此制定一个简洁的标题。

无论如何,想象一下我有一个父类:

我有一个派生类,它覆盖了 getDimensions 方法:

当我创建一个切入点 on 的切面时,Shape.getDimensions切入点在被调用时被击中两次Circle.getDimensions:一次 for Circle.getDimensions,然后一次调用super.getDimensions.

切入点如下所示:@Pointcut("execution(* Shape.getDimensions(..))")

我在建议中添加了一个 hack 来检查声明类型的名称(使用JoinPoint.getSignature().getDeclaringType().getName()),但我觉得它相当粗糙,感觉有点像 hack。我认为必须有更好的方法来做到这一点。

有没有?

如果格式不是很好,请道歉。第一次在这里提问(我通常可以找到答案)。