AOP讲解
AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现 日志处理,权限控制,性能检测,事务控制等
AOP实现的原理就是动态代理,在有接口的情况下,使用JDK动态代理,在没有接口的情况下使用cglib动态代理
准备工作1
导入依赖
准备工作2
切入点表达式: 通过一个表达式来确定AOP要增强的是哪个或者那些方法
语法结构:execution([权限修饰符][返回值类型][类的全路径名][方法名](参数 列表) )
例子1
execution(* com.msb.dao.UserDaoImpl.add(…)) //指定切点为UserDaoImpl.add方法
execution(* com.msb.dao.UserDaoImpl.(…)) //指定切点为UserDaoImpl.所有的方法
execution( com.msb.dao..(…)) //指定切点为dao包下所有的类中的所有的方法
execution(* com.msb.dao..add(…)) // 指定切点为dao包下所有的类中的add的方法
execution( com.msb.dao..add(…)) // 指定切点为dao包下所有的类中的add开头的方法