问题标签 [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.
function - 如何在 Scala 中分析方法?
分析 Scala 方法调用的标准方法是什么?
我需要的是一个方法的钩子,我可以用它来启动和停止计时器。
在 Java 中,我使用方面编程 aspectJ 来定义要分析的方法并注入字节码来实现相同的目的。
在 Scala 中是否有更自然的方法,我可以在其中定义一堆函数,在函数之前和之后调用,而不会丢失过程中的任何静态类型?
spring - Spring AOP 介绍 JMX 的使用
我正在使用 Spring JMX 支持来公开 MBean。此外,为了分离出 JMX 代码库,我尝试使用 AOP 的 Introductions 支持,这将允许我从业务 POJO 中取出 JMX 相关方法,并在 JMX 相关方面将它们分别模块化。虽然 JMX 支持和 AOP 的介绍对我有用,但是当串联使用时,在 Aspect 中介绍的 JMX 相关方法并没有在 MBean 中公开。
这可以通过 Spring 实现吗?还是有任何其他更清洁的方法可以启用我的 bean JMX 并且不会将与 JMX 相关的问题与我的核心代码混合在一起?
java - Weave 构造函数在运行时创建了 Aspects?
是否可以通过构造函数定义切面切入点的属性,然后在创建实例后允许它在运行时编织?还可以在运行时加载/卸载/修改特定方面吗?我计划通过 rmi 公开这方面的一些方法,以允许与客户端应用程序通信。也许这对java代理技术是可能的?
java-bytecode-asm - 在 java 运行时添加额外的代码
我正在开发一个库,我需要在运行时向我的对象的一些方法添加额外的代码。这里有两点。首先,我想添加额外代码的程序是之前由其他人编写的,我不想编辑它。其次,我的工作非常类似于在调用方法之前添加方面。
在互联网上搜索和阅读后,我发现了许多框架,如 aspectj、ASPECTWERKZ 等,可以完成这项工作,但例如 aspectj(在 spring 上下文中使用时)的问题是它没有为您提供任何 API在运行时进行编织。我还发现有一些库,如 ASM 和 javassist 等,但它们非常通用且难以学习,而我的工作更可能是方面。
所以你有什么建议?那里有什么好的图书馆吗?我对前面提到的上述库有误吗?请帮忙!
java - 在另一个方面上下文中调用方面 - Spring AOP
是否可以在代码上调用方面,它由另一个方面动作包装。例如,我调用事务中的服务方法。事务的管理由自己的事务方面提供。我想在这个服务方法中调用日志方面
是否可以在 Spring AOP 中调用它?
spring - Spring AOP 建议 - 在调试模式下有条件
我只想在调试模式下使用 AOP 建议/切入点等(作为主全局配置:例如,当 log4j 处于调试阈值时)。
如何在 application.xml 配置或其他地方执行此操作?
我正在使用 AOP 注释,例如
@Around("PointCuts.anyCustomPublicMethod()")
如何添加到建议中,例如,
debug.equals(TRUE)
有人告诉我使用 Spring Expression Language,但我不知道该怎么做。
spring - 在 OSGI 参考中应用 AOP 方面
是否可以在 OSGI 参考中应用 AOP 方面?
我有两个捆绑包,捆绑包 A 公开了捆绑包 B 能够使用它的服务。Bundle B 有一个 bean 引用,我想对这个引用应用 AOP 方面。我想使用 JMX 进行监控。
我该如何实施?
c# - C#中的方面方向
我有一个FTPDataTransfer
具有状态(FTPDataTransferState
)的类。此类提供了许多传输方法,例如ReceiveData
(重载)SendData
,...我如何将状态更改为Ready
,,Transfer
...而不改变每个传输方法中的值?
spring - Spring方面转发并取消先前的请求
这是我的问题
我想在任何 spring 控制器调用之前拦截请求,检查和修改请求 URI。之后它必须调用另一个 SPRING 控制器方法。
我使用了 mvc:interceptors 但是我想用注释来配置它,这就是我需要@Aspect 解决方案的原因。一切正常,但控制器调用了两次,用于原始请求和新请求。使用拦截器我返回 false 并取消它,我该如何处理 Aspect 类?谢谢
这是我的代码:
java - 当切点在超类上但派生类覆盖时,如何避免两次命中切入点?
很难为此制定一个简洁的标题。
无论如何,想象一下我有一个父类:
我有一个派生类,它覆盖了 getDimensions 方法:
当我创建一个切入点 on 的切面时,Shape.getDimensions
切入点在被调用时被击中两次Circle.getDimensions
:一次 for Circle.getDimensions
,然后一次调用super.getDimensions
.
切入点如下所示:@Pointcut("execution(* Shape.getDimensions(..))")
我在建议中添加了一个 hack 来检查声明类型的名称(使用JoinPoint.getSignature().getDeclaringType().getName()
),但我觉得它相当粗糙,感觉有点像 hack。我认为必须有更好的方法来做到这一点。
有没有?
如果格式不是很好,请道歉。第一次在这里提问(我通常可以找到答案)。