如何在Liferay Service Builder中配置AOP?

时间:2015-05-27 10:30:41

标签: liferay aop

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

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

  1. Service Wrapper Hooks

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

    使用这种方法,您可以完全控制原始方法是否应该运行。

    该链接提供了如何实现此目的的完整详细教程。

  2. Model Listener Hooks

    当你想跟踪特定模型的任何变化时,应使用此钩子,如上例User中所述,当你不确定哪种方法更新模型时,这很有用。

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

    此方法也适用于您的自定义服务。