问题标签 [aspects]

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 投票
0 回答
216 浏览

spring - Spring aop 和aspectj

如何使用 spring aop 和 aspectj 将所有记录的方法调用存储在单个会话的数据库中?

在下面的代码中,我将获取我需要捕获它们并存储在数据库中以用于单个会话的方法名称。

0 投票
0 回答
115 浏览

spring - 当实体具有 Spring Data Repository 时,该实体的 LoadTimeWeaving 不起作用

例如,User实体:

它是存储库:

当我创建一个新User对象时:

用户的userRepositoryemailRepositorynull,因为UserEmail有各自的Repository类,UserRepository并且EmailRepository;

当我使用另一个UserAggregateRoot没有 Spring Data JPA Repository 的类时,加载时间编织效果很好:

UserAggregateRoot没有Repository,所以当我创建一个新对象时,和UserAggregateRoot的字段不是;UserAggregateRootUserRepositoryEmailRepositorynull

所以我想知道为什么?它是一个错误吗?

0 投票
1 回答
1067 浏览

java - Spring Aspect 无法正常工作

我正在尝试向我的应用程序添加一个非常简单的方面,该方面负责监视实体的更改。基本上,我想在一个类中的 setter 被这样调用后升起一个标志:

建议从未运行,因此我开始尝试更简单的测试以找出问题所在。我在一个名为getId()的服务中创建了一个测试方法,并在我的 xml 配置中添加了一个新建议,如下所示:

每当来自包bg.infosys.avl.designer.facade中任何类的任何方法时,都应该调用它。这行得通!

当我将切入点更改为针对具有特定名称的方法时,如下所示:

该建议根本没有被调用。我尝试了各种组合,我尝试了注释,但结果都是一样的。当我尝试针对特定方法或尝试使用诸如 get* 之类的通配符时,永远不会调用建议。

我认为这里可能存在一个我不知道的更根本的问题。有人有想法么?

0 投票
0 回答
511 浏览

lombok - Lombok 和 AspectJ 与 Sprint 引导 2

我正在尝试利用 Spring Boot 将 Lombok 与 AspectJ 一起使用。但是,ajc 无法识别 Lombok 创建的 getter/setter。我确实尝试了多次尝试搜索提供的各种解决方案,即生成 delombok,然后传递字节码到 ajc。其中一个来自https://palesz.wordpress.com/2011/12/03/howto-maven-lombok-and-aspectj-together/

我正在尝试运行 mvn test,如果有人遇到类似情况并有一个可行的解决方案,我将不胜感激。

谢谢

0 投票
1 回答
30 浏览

design-patterns - 我可以用我的核心逻辑来更新 Aspect 中的对象状态吗


我有一个要求,我将通过调用公共方法 action() 以链模式 ClassA->ClassB->ClassC 执行一组操作。理想情况下,ClassA、ClassB 和 ClassC 实现具有方法 action() 的接口 IClass。

在 action() 方法结束时,它的状态(失败/成功)应该在数据库中更新。
所以我的疑问是,
- 利用 Aspect 对方法“动作”的建议并在动作执行后更新 Aspect 类中的状态是否是一个好的设计。
- 我们既然是更新动作状态的核心逻辑,它不应该像方面一样成为横切框架的一部分吗?

0 投票
1 回答
183 浏览

spring - @Transactional 方面有什么样的切入点?之前,之后还是周围?

当要解释 Spring 方面时,强制性示例通常是事务和日志记录 )))

所以我最近被问到的问题是:@Transactional 方面有什么样的切入点?之前,之后还是周围?(任何其他澄清表示赞赏!)

谢谢

0 投票
1 回答
38 浏览

c# - Postsharp:从一个方面访问已经应用的方面

我创建了一个小的 Aspects 层次结构。例子:

我想知道在 ProvideAspects 中是否有任何方法可以找出是否以及哪些其他 Aspect 已应用于 targetElement - 并获取对 Aspect 实例的引用。

就像是

(我的意图:检查是否已经添加了某个方面,如果是,则修改它)

PS:我确实以另一种方式解决了我的问题,但如果这可能的话,它会比我的解决方案更优雅、更有效。