【发布时间】:2021-07-24 20:52:44
【问题描述】:
我不熟悉面向方面编程的概念。我正在我的 Spring Boot 应用程序中使用 AspectJ 编写以下方面:
@Aspect
public class MyAspect {
private final AspectUtil aspectUtil;
public MyAspect(AspectUtil aspectUtil)) {
this.aspectUtil = aspectUtil;
}
@Pointcut("@within(org.springframework.stereotype.Service)")
public void applicationServicePointcut() {
}
@AfterReturning(value = ("applicationServicePointcut()"))
public void process(JoinPoint joinPoint) {
HttpServletRequest request = aspectUtil.getRequest();
aspectUtil.getHttpVerb(request);
processUtil(request, joinPoint);
}
public void processUtil(HttpServletRequest request) {
...
}
我的应用程序中定义的所有服务都标有@Transactional,下面给出一个示例:
@Service
@Transactional
public class MyService {
..
}
所以,我的问题是,如果我从上面定义的方面抛出任何异常,那么服务层中的关联事务会回滚吗?
实际上,我的目标是回滚整个事务,以防在这方面发生任何异常。
【问题讨论】:
标签: java spring-boot aop aspectj spring-transactions