【发布时间】:2012-12-10 16:04:54
【问题描述】:
我在DAO层有一个有返回值的方法,我想通过spring AOP改变返回值,根据不同的需求,然后发送到SERVICE层对应的方法;但我不知道该怎么做。
【问题讨论】:
-
我无法在 Spring AOP 方面为您提供帮助,但如果您需要 Stackoverflow 社区的帮助,我强烈建议您发布一些源代码。
我在DAO层有一个有返回值的方法,我想通过spring AOP改变返回值,根据不同的需求,然后发送到SERVICE层对应的方法;但我不知道该怎么做。
【问题讨论】:
您可以将@Around 方面应用于应修改其返回类型的方法。您可以查看我的blog post,了解如何将 Spring AOP facet 添加到 Spring 应用程序,然后编写 @Around aspect。我将此方面用于方法的Memoizing 结果,但在您的情况下,您将获取ProceedingJoinPoint.proceed() 的返回值,将其类型转换为适当的类,然后对其进行修改并返回它。
如果您打算完全返回一个完全不同的对象,那么这将导致 ClassCastException,除非实际返回的对象是返回类型的子类。
【讨论】: