首先,看一下spring主要特性
1.控制反转(inverse of control)
当某个java对象(调用者)需要调用另一个java对象(被依赖对象)的方法时,传统模式下回有两个方式:
第一种:调用者主动创建被调用者对象,然后调用其方法;第二种,通过主动找到被依赖对象的工厂的方式,然后调用其方法。
主动地方法,必然导致代码之间的紧密耦合。
使用spring后,调用者无需主动获取被依赖对象,调用者只要被动接受spring容器为其成员变量赋值即可,由主动需要变成被动接受,—即控制反转!
2.也叫依赖注入(Dependency injection)
从spring 容器中看,spring容器负责将依赖对象的实例赋值给调用者的成员变量,相当于调用者注入它依赖的实例,—即依赖注入
spring通过xml文件配置的方式,实现了灵活的解耦,又有什么灵活的读取资源的实现呢?
spring通过Resource接口,用策略模式实现了灵活的文件配置。