我想拦截Service Builder中的方法,例如:XXXLocalService.update()
。但我不知道这样做的正确方法。我做了一些研究,但我没有找到明确的方法来做到这一点。
非常感谢任何帮助。
答案 0 :(得分:2)
假设您想拦截Liferay的服务,基本上有两种方法可以在Liferay中实现这一目标:
这样做可以为您提供所需服务的包装器,例如:UserLocalServiceWrapper
将是UserLocalService
的包装器,并且可以完全控制此接口中定义的方法。如果您知道要在特定服务中修改/拦截的确切方法,这是一种很好的方法。
使用这种方法,您可以完全控制原始方法是否应该运行。
该链接提供了如何实现此目的的完整详细教程。
当你想跟踪特定模型的任何变化时,应使用此钩子,如上例User
中所述,当你不确定哪种方法更新模型时,这很有用。
这基本上是为您提供一组方法,如onBeforeUpdate
,onAfterUpdate
,onAfterCreate
等,以控制模型。
此方法也适用于您的自定义服务。