二 .AOP(Aspect-Oriented Programming): 面向方面编程 1. 代理的两种方式: 静态代理: ◆针对每个具体类分别编写代理类; ◆针对一个接口编写一个代理类; 动态代理: 针对一个方面编写一个 InvocationHandler ,然后借用 JDK 反射包中的 Proxy 类为各种接口动态生成相应的代理类 2.AOP 的主要原理:动态代理 Spring 工作原理 Spring 已经用过一段时间了,感觉 Spring 是个很不错的框架。内部最核心的就是 IOC 了,动态注入,让一个对象的创建不用 new 了,可以自动的生产,这其实就是利用 java 里的反射 , 反射其实就是在运行时动态的去创建、调用对象, Spring 就是在运行时,跟 xml Spring 的配置 文件来动态的创建对象,和调用对象里的方法的 。 Spring 工作原理还有一个核心就是 AOP 这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过配置类达到的。 Spring 目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明 管理的( Spring 根据这些配置 内部通过反射去动态的组装对象)要记住: Spring 是一个容器,凡是在容器里的对象才会有 Spring 所提供的这些服务和功能。 Spring 里用的最经典的一个设计模式就是:模板方法模式。(这里我都不介绍了,是一个很常用的设计模式)