Spring学习札记之一spring的特点

Spring学习笔记之一spring的特点

认识Spring 
Spring的核心是个轻量级的容器,它是实现IoC容器和非侵入的框架,并提供AOP概念的实现方式;提供对持久层、事务的支持,提供MVC Web框架的实现。 

轻量级 
轻量级是相对于重量级的容器(如EJB)来说的,Spring核心包不到1MB。 

非侵入性 
洗完让应用程序几乎感受不到框架的存在,减少应用程序从框架移植时的负担。增加可重用性。 

容器 
容器可以管理对象的生成,资源的取得,销毁等生命周期,甚至建立对象与对象之间的依赖关系。 

IoC控制反转与DI依赖注入 
IoC:从对象角度来说可以避免对象之间的耦合,从容器的角度来说可以避免应用程序因依赖于容器的功能,而从容器脱离。 
DI:在配置文件中加以设置,Spring核心容器会自动根据配置,将依赖注入到指定的对象。 

AOP 
可以在不修改任何程序的情况下加入功能或者移除。 

持久化 
提供对持久层的整合,如对JDBC的使用加以封装和简化,提供程式事务与声明事务管理功能。 

Web框架 
提供Model 2框架的解决方案。轻松替换不同view层,将自己熟悉的框架与Spring结合使用。 

控制反转 
控制反转时为了解决依赖关系,通过接口声明,分别写出不同底层的实现,需要那个就调用那个实现,就可以完成对不同底层的切换,而不是修改整个代码。例如: 
Business business = new Business(); 
//这里就完成了选择底层驱动,是floppy或者是USB,而源类中用的是IDeviceWriter,这个接口,所选的俩个驱动分别都实现了这个接口。并且复写了saveToDevice()方法。 
business.setDeviceWriter(new FloppyWriter()or new UsbDiskWriter()); 
business.saveToDevice(); 
还可以用Business工厂方法和xml文件配置进行动态管理。 

依赖注入 
保留抽象接口,让组件依赖于抽象接口,当组件要与其他实际的对象发生依赖关系时,由抽象接口来注入依赖的实际对象。 
分别有三种方法实现: 
Type 1 IoC: 
类实现接口,有较强的侵入性。降低重用性。 
Type 2 IoC: 
上面的例子就是这种方法,利用Setter形式。 
Type 3 IoC: 
利用构造方法实现。