spring的AOP编程

spring框架是轻量级的JavaEE解决方案,众多优秀的设计模式的组合。(核心设计模式包括工厂、代理、模板、策略。)spring框架的核心:工厂类+配置文件---->生产对象----->解耦和。
工厂设计模式是通过工厂类,完成一个对象的创建或者生产。好处:解耦和。底层实现是反射、读取配置文件获取类名。
AOP编程(Aspect Oriented Program)是面向切面编程。
        1)静态代理设计模式
通过代理类为原始类增加额外功能。避免原始类因为额外功能频繁被修改,从而使代码更加有利于维护。
代理类本质 = 原始类 + 额外功能 + 实现原始类的相同接口。
静态代理设计模式的问题:
1. 代理类的数量过多,不利于项目管理;
                      2. 额外功能代码冗余;
3. 替换代理的额外功能麻烦。

2)spring的动态代理设计模式

通过代理类为原始类增加额外功能。利于原始类的维护。

AOP编程,就是spring的动态代理的开发,就是通过代理类为原始类增加额外的功能,利于原始类代码的维护。是基于动态代理设计模式。

AOP编程的开发步骤:

1.原始对象

2.额外功能

3.切入点

4.组装切面

AOP编程的实现原理:

1.动态代理类创建过程

1> 原始JDK动态代理技术完成;

Proxy.newProxyInstance(Classloader类加载器,原始对象所实现的接口,额外功能InvocationHandler);

2> cglib动态字节码增加技术完成。

动态代理类是程序运行的时候动态创建的,没有.java和.class文件。没有.class文件,所以就没有ClassLoader,也就不能运行在JVM。因此,动态代理类的创建就需要借用别的类的类加载器ClassLoader。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值