spring是一个开源框架,ioc容器和AOP事务是他的核心!
IOC容器用来控制反转:控制反转的意思就是将底层对程序拥有的控制权转移给了接口!!!实现了接口控制的方式!
举个例子,你在main方法里要运用一个磁盘传输数据的方法:
磁盘 a=new 磁盘();
但是如果现在要求你使用U盘来实现传输数据的功能怎么办?
U盘 u=new U盘();?
这就导致对于底层的过度依赖,java思想是下层为上层服务,不是上层依赖下层。
所以就必须使用接口的方式,使得磁盘和U盘同时实现设备这个接口里的方法。接口 i=new 磁盘()或者new U盘();
因为java的对象是在运行期才会被创建的,而非编译器。但是这样仍然存在着问题,就是每次要改动对象类型的时候还是要到程序里去做修改,如果有了xml文件的话,可以直接修改xml文件。
所以这就是IOC的大致思想。
AOP面向切面对象:
切面(aspect):要实现的交叉功能,是系统模块化的一个切面或领域。如日志记录
spring的三种注入方式:
1.接口注入
2.构造器注入
3.set方法注入