Spring 基于注解的AOP使用
直接上代码
1.bena.xml配置
<!-- 配置spring创建容器时要扫描的保-->
<context:component-scan base-package="com.joyTop"></context:component-scan>
<!-- 配置spring 开启注解AOP的支持-->
<aop:aspectj-autoproxy ></aop:aspectj-autoproxy>
2.service提供注解
@Service("accountService")
public class AccountServiceImpl implements IAccountService {
public void saveAccount()
{
//int i=1/0;
System.out.println("保存");
}
public void updateAccount(int i) {
System.out.println("更新");
}
public int deleteAccount() {
System.out.println("删除");
return 0;
}
}
- Logger提供注解
因为注解的spring前置通知、后置、异常通知、最终通知有执行顺序问题,我们建议使用注解环绕通知。已经把其余通知关闭,只开启环绕通知
//用于记录日志的工具类,它里面提供了公共的代码
@Component("logger") //交给spring容器管理
@Aspect //表示当前是一个切面
public class Logger {
//统一切入点
@Pointcut("execution(* com.joyTop.service.impl.*.*(..))")
private void pt1(){
}
//用于打印日志,计划让其在切入点方法执行之前(切入点方法就是业务层方法)
public void printLog