我的项目是基于 Spring 和 Hibernate 的。我熟悉Spring AOP。
有一个要求,每当调用 DAO 层的任何方法(通过服务层)时,我都需要检查一些逻辑,并基于该 DAO 层方法应该允许继续进行。所以,我想到这里使用AOP。 aspect 将有一个方法,并应用before通知,该方法将具有一些逻辑,并根据 boolean 值相应地返回 true 或 false从aspect返回的strong>值,DAO方法将被允许继续执行其持久化逻辑。例如如果返回true,则会发生DAO持久化过程,如果返回false,则不会发生持久化逻辑。
但是,我面临的挑战是如何从 Aspect 返回 boolean 值到 DAO 层方法。
是否可以通过Before通知从建议方法(即用Aspect编写的方法)将值返回到目标方法?请帮忙。
最佳答案
如果您的 DAO 可以与“proceed/execute/doStuff”方法共享接口(interface),那么您可以从 Advice 中调用它(或不调用)。
如果没有,为什么不在 DAO 中添加一个标志并根据建议进行设置,然后在继续操作之前在 DAO 上检查它,并在离开该方法之前将其设置回默认状态。
关于java - 面临 Spring AOP 中 Before 建议的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12641901/