一、概念
1.AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善
2.aop作用: 事务控制 性能安全控制 日志记录
3.AOP代理可以通过jdk动态代理实现,也可以通过cglib实现,默认是通过jdk动态代理实现的。jdk动态代理需要接口的支持,如果
没有接口只有类,则使用cglib来实现。
二、Spring AOP基于代理设计模式
静态代理:一个接口 分别有一个真实实现和代理实现
用代理实现去调用真实实现
缺点:只能为一个接口去代理实现
动态代理:(基于jdk动态代理)使用一个类便可代理所有接口
通过代理类的代理接口和实现类可以不直接发生联系
而在运行期可以关联
实现InvocationHandler接口
三、aop的配置
<aop:config>
<!-- 引入aopcon 使其成为切面类-->
<aop:aspect id="aop" ref="aopCon">
<!-- 配置切点表达式匹配到具体方法 -->
<aop:pointcut id="aopPoint" expression="execution(* com.zg.springaop.*.*())"/>
<!-- 配置切点表达式的方法名和需要的切点表达式-->
<aop:before pointcut-ref="aopPoint" method="before"/>
<aop:after pointcut-ref="aopPoint" method="after"/>
</aop:aspect>
</aop:config>