Spring AOP
Spring的核心是IOC AOP。面向切面编程是指通过预编译和运行期动态代理的方式实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。
代理模式:给某一个对象提供一个代理对象并由代理对象控制对原对象的引用
静态代理&动态代理
静态:生成源代码class文件也存在
优点 对文件进行扩展。
缺点 工作量大,不易管理。
动态:运行时通过反射机制动态创建的,随用随加载。
引入代理解决事务
1.创建一个工具类,目的是用于管理数据库的事务,提供事务的开启,提交,回滚等操作;
2.创建一个代理处理器类,目的是生成转账实现类的代理对象,对转账的业务方法提供增强。
3.在 Spring 的配置文件中,通过 xml 文件的标签实例化管理事务的工具类和生成代理对象的处理器类。
引入AOP
AOP是一种编程设计模式,是一种编程技术,使用AOP后通过修改配置。
1.Join point 所谓连接点是指可以被拦截到的点。
2.pointcut 切入点定义Joinpoint进行拦截
3.Advice 指拦截到Joinpoint 对方法做增强功能(后置 最终 异常 环绕)
4.Target 指代理的目标对象。
5.Aspect 作为整合AOP的切入点和通知。
6.Weaving 运行时将增强的功能代码也就是通知。
7.Proxy 产生代理类。
SpringAOP 的作用是把程序中重复的代码抽取出来,在需要执行的时候,使用动态代理技术,在不修改源码的基础上,对已有方法进行增强。
优势:减少了重复代码,提高代码复用性,提高开发效率,使得代码的维护更加方便。
浙公网安备 33010602011771号