1.AOP
面向切面编程,通过预编译方式和运行期动态代理实现程序功能的同一维护的一种技术,利用AOP可以对业务逻辑的各个部门进行隔离,从而使得逻辑各部门之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率
2.代理模式
a.静态代理
优点:可以在不侵入源代码的情况下扩展代码的功能
缺点:有多个业务需要代理的时候,需要多个接口和代理类
b.动态代理:代理对象可以根据情况动态的变化
b1.JDK动态代理:由于JDK中提供的代理类来完成动态代理
缺点:必须设计接口
b2.CGlib动态代理:第三方CGlib类完成动态代理
优点:在没有接口的情况下可以生成代理对象
注意导入CGlib的jar包com.springsource.net.sf.cglib-2.2.0.jar
3.Spring中使用到的设计模式
(1)工厂模式:在各种BeanFactory以及ApplicationContext创建中都用到了
(2)模板模式,这个也很明显,在各种BeanFactory以及ApplicationContext实现中也都用到了
(3)代理模式,在Aop视线中用到了JDK的动态代理
(4)单例模式:这个比如在创建bean的时候
(5)外观模式
(6)策略模式
(7)原型模式
(8)迭代器模式
4.java中常用的设计模式
java中 一共有23种设计模式
(1)工厂模式 (2)代码模式 (3)单例模式 (4)观察者模式 (5)门面模式