有哪些可能的 AOP 用例?

2022-08-31 16:27:05

我想介绍一下AOP有效参与应用程序设计的可能情况。到目前为止,我遇到的只是:

  • 日志记录相关
  • 安全检查
  • 事务管理
  • 调整旧版应用程序

别的东西?

(它不一定是Spring基于代理的AOP - 而是JBoss AOP。

(相关问题)


答案 1

我可以给你两个例子来使用它:

  • 在 JMX 中自动注册对象以进行远程管理。如果一个类是用我们的注释来注释的,我们有一个方面来监视该类的新实例化,并自动在JMX中注册它们。@AutoRegister

  • 审核日志记录(黄金标准 AOP 用例)。它有点粗糙,但一般的方法是注释表示某些可审核操作的方法。结合像Spring Security这样的东西,我们可以得到一个很好的想法:

    • 用户是谁
    • 他们调用的方法是什么
    • 他们提供的数据
    • 调用方法的时间
    • 调用是否成功(即,如果引发异常)

答案 2
  • 异常处理:不需要重复可怕的尝试列表...捕获,捕获,捕获等 - 也意味着异常处理保证是一致的。
  • 性能监控:非常有用,因为使用方面是非侵入性的,可以在事后完成,然后在不再需要时关闭。

哇。。。10年前 - 没有太多的AOP...这里还有几个

  • 能够自定义您无权访问其构造函数的对象(例如 jpa 实体)
  • 实现安全规则(安全性表示不允许用户调用此方法 - AOP 可以实现该方法)
  • 事务管理器(开始、提交、回滚)
  • 缓存 - 想要缓存方法的结果,而不是再次调用它

推荐