Spring是一个基础框架耦合和解耦耦合:程序间的依赖关系,类之间,方法间解耦:减低程序间的依赖关系,可以通过读取配置文件来获取要创建的对象全限定类名,也可以使用反射来创建对象,而避免使用NEW关键字。IOC就是依赖 注入 容器依赖就是变量的三要素,定义赋值使用。注入使属性赋值的过程就是注入。有三种注入方式:直接注入,set方法注入,构造器方法注入容器,仅有数组List,map集合,set集合。容器具有唯一性, 内存地址是相同的,使用使用的话,只开辟一次内存空间。单例必须要有的三个因素:静态的本类属性,静态属性赋值永远存在 、私有的构造方法、有get方法给个出口。全路径NEW个对象,Class.forName("全路径").newInstance();反射也可以直接获得属性直接赋值IOC控制反转是一种设计思想,即将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制反射,写框架的基础 通过全路径可以获取对应全路径这个类的相关的东西代理proxy 用一个代理类来实现所有接口类AOP:前置通知,后置通知,异常通知,最终通知,环绕通知代理实现时,实现方法时,前后的动作就叫切面事务是基于AOP,但AOP不一定有事务,事务具体是什么不太清楚。动态代理,代理需要有一次注入,原理就是先理解静态代理,可以代理所有的实现类和接口切面就是代理类 连接点:程序运行中的时间点jdk用的是invoke() Spring用的是proceed()xml文件中,id是自己起的,class是全路径 ref对应的是idSpring中getObject()返回有FactoryBean创建的实例