spring是一个开源的容器框架,有两个灵魂:ioc(依赖注入)和Aop(面向切面编程)。
spring好比是桶,对象就是水。
ioc:控制反转也叫做依赖注入,利用了工厂模式
原来的对象是使用者来进行控制,有了spring后,可以把整个对象交给spring来处理。
依赖注入:把对应的属性的值注入到具体对象中,通过sessionfactory注入实例。
容器:存储对象,使用map结构来存储,在spring中一般存在三级缓存,singletonObjects存放完整bean对象。
Aop:面向切面编程,它是为解耦而生的。
通过动态代理的方式,将需要注入切面的对象进行代理,在进行调用时候把公共的逻辑添加进去,从而不需要修改原有业务的逻辑代码,只需要在原来的业务逻辑基础之上做一些增强功能即可。
方便维护代码,简化企业开发。
例子:日志