AOP(面向切面编程)

AOP的概述

AOP又叫面向切面编程。
AOP采取横向抽取机制,取代了传统的纵向继承体系。
Spring的AOP采用了春Java实现,不需要专门的编译过程和类加载器,子啊运行期间通过动态代理的方式向目标对象注入增强代码。

AOP的应用场景

在不修改源码的情况下对程序进行增强
权限校验、日志记录、性能监控、事务控制

代理模式(静态代理和动态代理)

静态代理(使用继承关系实现、装饰者模式)

优点:可以在不修改目标对象的功能的前提下,对目标对象进行功能扩展
缺点:因为代理对象需要与目标对象 实现一样的接口,所以队友很多代理类,同时接口一旦增加方法,就要对目标对象和代理对象都进行维护。(通过动态代理可以解决这个问题)

动态代理(JDK动态代理、cglib动态代理)

优点:有了目标对象,只要通过代理工厂就可以为所有的目标对象创建工厂对象。
缺点:目标对象必须至少实现一个接口,代理对象强制转换时,只能转成目标对象所实现的接口类型。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章