java - 面临 Spring AOP 中 Before 建议的问题

标签 java spring spring-aop spring-annotations

我的项目是基于 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/

相关文章:

java - 在放置、发布和删除之前进行 Spring Boot 验证

java - spring mvc 3 - SessionAttributes 似乎不起作用

java - 在 Spring MVC : Property 'url' is required 中创建自定义 View 解析器

java - all_user 和 role_user 的拦截 url

spring - Autowired 无法与 Azure 功能一起使用

spring - 使用 AspectJ LTW 在非公共(public)方法的自调用和相关注意事项上允许 spring 代理功能

java - @Aspect 类,其建议签名类似于切入点表达式

java - 什么是 Maven 快照,我们为什么需要它?

java - 冒泡排序作业出错

java - pom.xml 和事务中包含 spring-boot-starter-data-jpa 和 spring-tx 的旧版 spring boot 项目?