【问题标题】:AspectJ Spring AOP pointcut hibernate entity functionsAspectJ Spring AOP 切入点休眠实体函数
【发布时间】:2017-11-25 07:51:01
【问题描述】:

我如何切入 Hibernate 实体中定义的函数的执行,这些函数不是作为 Spring bean 创建或加载的。无法通过 Internet 找到有关如何执行此操作的任何帮助。

有没有办法使用spring来点切休眠实体。

This is what I found, but no solution

【问题讨论】:

    标签: entity aop aspectj spring-aop hibernate-entitymanager


    【解决方案1】:

    使用 Spring AOP,您无法做到这一点。 Spring AOP 是一个有限的 AOP 解决方案,它仅与 AspectJ相似。 Spring AOP 在很多方面不如 AspectJ:

    • Spring AOP 仅支持 AspectJ 切入点的有限子集(仅执行类型的切入点)
    • Spring AOP 与 AspectJ 相比具有不同的语义,因为它使用动态代理而不是直接的字节码操作。使用 Spring AOP 使用的基于代理的解决方案,当控制流没有离开代理对象时,建议不会执行,就像在同一个对象中调用另一个方法时一样,例如 this.someOtherMethod()
    • Spring AOP 仅适用于 Spring 托管 bean。 Hibernate 实体不是 Spring 托管的 bean,因此 Spring AOP 不适用于它们。

    我鼓励您切换到本机 AspectJ,以便能够为 Hibernate 实体或任何其他非 Spring 管理的 bean 提供建议。 Spring 很好地支持 AspectJ,您应该能够更改配置以使用本机 AspectJ 而不是 Spring AOP。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-06
      • 1970-01-01
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      相关资源
      最近更新 更多