问题标签 [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.
design-patterns - Facade 设计模式的缺点是什么?
……我们如何使用面向方面的编程来克服它们?
jpa - 帮助创建与 @PrePersist 和 @PreUpdate 等效的 AspectJ 以用于审计用例
在 JPA 中,有 @PrePersist 和 @PreUpdate 注释允许在 CRUD 操作之前进行操作。我试图找出与此等效的 ApsectJ。
我的用例是一个由一个团队构建的 JPA 应用程序,现在想为发生的每个 Pre-Persist 和 Pre-Update 添加一个审计方面,而不向原始实体添加生命周期侦听器。
java - JPA 和数据库 Flex 字段
“弹性字段”是一个术语,用于在客户站点更改表格以向表格添加额外的列,以保存有关该表格实体的自定义信息。我想知道是否有人处理过用 jpa 支持这种机制,特别是 eclipselink。
我们希望这样做,因为我们允许根据这些客户指定字段中的值过滤基本行,并且将这些字段放在关联表中会导致此辅助表的多个别名连接。
一个明显的方法(至少在我看来)是定义一个将新字段注入实体对象的方面,然后运行动态编织。
我想知道是否有人这样做过,是否有任何我没有看到的问题,或者关于其他方法的建议。
ruby - Ruby 中的面向切面编程
有哪些框架可以将 AOP 添加到 Ruby?
java - 使用注释进行跟踪记录
我一直在与一家公司的代码库合作,该公司的政策是编写大量跟踪日志。所以几乎每个方法都有一段这样开头的代码:
并像这样结束(在 -finally
子句中或仅在方法的末尾:
实际上还有更多代码,但这是基本思想。这使代码变得混乱,其他编码人员不断地用他们自己的解释来搞乱它,这些解释不使用特定的CompanyMessages
类来格式化要由监控工具读取的消息。所以我正在寻找一种方法来摆脱上面的所有代码,只提供所有需要跟踪记录的方法,并带有如下注释:@LogBefore('logLevel')
& @LogAfter('logLevel')
。
我选择这个解决方案的原因是为了让其他开发人员不必学习任何新东西,只需使用注释而不是代码。我在一个服务器环境中工作,我们在其中部署了数百个 Web 应用程序和数十个开发人员。所以我一直在寻找一种方法来在 Web 应用程序中实现这一点,而无需大量额外的编码或额外的大型库。这意味着我正在寻找一个小型、稳定的 AOP 实现,使用类似于我建议的注释,易于在每个 Web 应用程序中配置。性能也很重要。用 AOP 实现这个的最简单的例子是什么?
编辑:我确实找到了与我正在寻找的东西非常相似的东西,但这有几个问题。必须配置所有需要记录的类,这将比仅使用注释更占用资源。弹簧配置会<aop:aspectj-autoproxy/>
解决这个问题吗?
logging - 带注释的 Spring AOP 需要帮助!
谁能帮我一些示例代码?
我需要在服务级别实现 Spring AOP 和注释以实现 Db 审计或日志记录。
我在网上找到了一些代码,但没有什么非常清晰和整洁的。
我用示例进行了尝试,但我永远无法让拦截器正常工作。而且我无法运行任何一个顾问,例如@Before 或@After。
我在示例中看到过,大多数使用 XML 配置文件,但我知道在某些情况下可能会省略使用。如何以及何时?
最后,真的有必要强制使用@Audit注解和/或@Pointcut吗?
非常感谢您的帮助。我对此一无所知,
非常感谢...干杯,
-CaktusJP-
java - 使用其他 jar 中的方面
我想要完成的是以下内容:
我有一个具有以下结构的服务器。
我想定义一个 API,其中包含服务要使用的方面。说:
然后我定义服务并使用@Authorization 注释我想要的方法,并通过该方面获得切入点。
你应该知道的事情:
- 服务仅使用 API 来编译代码,因此范围是“提供的”,因为 API 已经在服务器中。
- 服务 JAR 是动态加载的,因此它们将驻留在另一个类加载器中。
我的问题是,我该怎么做?我如何定义我的 Maven 工件来实现这一点?
我注意到 aspectj 插件有一个 weaveDependencies 部分,但这也会在服务 JAR 中包含该 API 中的所有类(我想避免的事情)。这是正确的举动吗?
提前致谢,
瑞
java - AspectJ - 为什么使用注释而不是 ajc 编译器?
我们既可以使用@AspectJ 注解样式来定义切面,也可以使用AspectJ Java 扩展语言,这需要我们使用ajc 编译器。
人们想要使用注释样式而不是 ajc 的原因是什么?在我看来,使用注释样式放弃了很多功能,但除了不必使用 ajc 之外,并没有获得太多(如果有的话)(必须使用 ajc 有什么不好?)
有人可以请教我这个话题吗?
java - Spring AOP 方面未执行
我一直在试图弄清楚为什么我的简单方面没有被执行。我查看了类似问题的答案,但仍然无法正常工作。
我的意图是使用 AOP 建议来包装使用自定义注释注释的方法的执行,该建议将跟踪方法运行所需的时间。当我运行测试时,我看到了该方法的输出,但没有运行建议(我希望它记录一些输出)。
这是 Aspect 类:
紧随其后的是注释:
接下来是一个测试类:
弹簧配置:
最后是测试的输出:
任何意见是极大的赞赏。
aspectj - 哪些语言最适合应用 Aspect 的主题方法?
我正在考虑阅读面向方面的分析和设计:主题方法,但我很犹豫。是否可以在 C# 中使用 AspectJ(用于 Java)或 Post# 中的内容?也许在 Ruby 中使用 Aquarium?
什么是完美的语言来适应这本书的设计过程?我对方面的对称方法更感兴趣。
谢谢