如何在 Liferay Service Builder 中配置 AOP?

How can I configure AOP in Liferay Service Builder?

我想拦截Service Builder中的一个方法,例如:XXXLocalService.update()。但我不知道这样做的正确方法。我做了一些研究,但我还没有找到一个明确的方法来做到这一点。

任何帮助将不胜感激。

假设您想拦截 Liferay 的服务,基本上有两种方法可以在 Liferay 中实现:

  1. Service Wrapper Hooks

    这样做是为您提供所需服务的包装器,例如:UserLocalServiceWrapper 将是 UserLocalService 的包装器,并且可以完全控制此接口中定义的方法。如果您知道要在该特定服务中使用的确切方法 modify/intercept,这是一个很好的方法。

    此外,通过这种方法,您可以完全控制原始方法是否应该 运行。

    link 提供了如何实现这一点的完整详细教程。

  2. Model Listener Hooks

    当您想要跟踪特定模型的任何更改时(如上述情况),应该使用此挂钩 User 当您不确定要更新模型的方法时,这会很有帮助。

    这基本上是为您提供一组方法,如 onBeforeUpdateonAfterUpdateonAfterCreate 等来控制模型。

    此外,这种方法也适用于您的自定义服务。