日常开发中经常会使用到 Spring AOP,通知类型有:
Around、Before、After、AfterReturning、AfterThrowing
,本文主要讲解五种通知都有时,正常和异常情况下的执行顺序,以及多个切面存在时,执行顺序如何
正常逻辑代码
- 接口定义如下
public interface UserService {
void saveUser();
void deleteUser();
}
- 接口实现代码如下
@Slf4j
@Component
public class UserServiceImpl implements UserService {
@Override
public void saveUser() {
log.info("save user");
}
@Override
public void deleteUser() {
log.info("delete user");
System.out.println(1 / 0);
}
}
针对正常接口 UserService
定义两个切面逻辑
- 切面一
@Slf4j
@Order