gpt4 book ai didi

java - AOP 实现背后的重要思想是什么

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:47:37 24 4
gpt4 key购买 nike

我想为我说清楚。

我了解了 AOP 概念,我明白这是共享横切服务的好方法。 (日志记录、安全、事务...)

但我想说/问一些关于这个想法及其实现的事情。

我读到有一些方法,例如 AspectJ、JBOSS AOP,以便将 AOP 融入我的业务逻辑。

但它不是很久以前就在这里了吗?

比方说,我想在我的组件(Java bean、EJB 等等......)之间共享一个日志记录或安全实现

为什么我不能创建一个 Singleton bean 来确保它只有一个实例,并且只要任何组件需要它的日志记录/安全服务,它就会查找并使用它的服务。

为什么我需要理解并拥有所有那些“大”实现,例如 aspectj 或 jboss AOP?我在这里想念什么?

最佳答案

AOP 的思想是将公共(public)逻辑放在一个地方(您的单例解决方案也解决了这个问题)并且是“不可见的”(透明的)。使用 AOP,您的日志记录代码甚至不是业务逻辑的一部分,而是在幕后“注入(inject)”。

它也更加动态——您不需要在每次需要日志记录时都调用单例服务。只需配置一次切入点(例如:“此包中的所有 setter ”),日志记录将应用于所有现有代码和新代码。

此外,AOP 更加灵活和强大。您可以询问 AOP 实现:“每次我调用以“save*”开头并采用一个参数的方法时,请启动一个事务”或“如果方法返回 Customer 抛出IllegalAgumentException 的异常子类,请再次调用该方法。

AOP 不仅仅是对通用逻辑进行分组。

关于java - AOP 实现背后的重要思想是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10969545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com