spring的AOP编程

来源:互联网 发布:计算机二级vb上机题库 编辑:程序博客网 时间:2024/05/21 15:07
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。

0 0
原创粉丝点击