Spring结构简介
Sring架构简介
一、Spring框架简介
Spring框架是分层次的,主要由7部分组成:
Spring核心容器 其核心组件是Beanfactory,它是工厂模式的实现。其使用IOC将代码和配置文件分离。
Spring上下文 其是一个配置文件,向Spring框架提供上下文信息。如JNDI、邮件信息等
Spring AOP 通过配置管理特性,Spring将面向切向编程加入到了Spring中。
Spring DAO 主要用该结构处理不同数据库厂商抛出的异常信息和管理异常。
Spring ORM Spring插入了若干ORM框架,从而提供了ORM对象关系管理工具。其中包括hibernate和mybatis等。
Spring Web模块 web模块建立在应用程序模块之上,从而为基于web的模块提供上下文。
Spring MVC框架 一个基于MVC框架的web实现。
二、控制反转IOC
IOC的基础是org.springframework.beans和org.springframework.context
IOC的主要目的降低对象之间的依赖关系。通过协调依赖关系,实现可重用和可移植性。控制权有应用代码转移了外部容器,实现了解耦。
IOC的实现策略有两种:
依赖查找 容器中的受控对象通过容器API来查找所依赖的对象。缺点:无法在容器外测试和使用对象。
依赖注入 让容器去全权负责依赖,其主要是通过属性或者构造函数传递给需要的对象。
依赖注入的简代码单实现,如下:
public inteerface ICar { public void make(); } public class SmallCar implements ICar { public void make(){}; } public class BigCar implements ICar { public void make(){}; } public Class Person { public void make(ICar car) { car.make(); } } public static void main(String[] args) { ICar smallCar=new SmallCar(); ICar bigCar=new SmallCar(); Persona p=new Personal(); p.make(smallCar); p.make(bigCar); }
而在Java中IOC的工厂是由XML配置文件实现的(xml省略),代码如下:
创建SamllCar对象,如下:
ICar smallCar=(ICar)Clss.forname("SmallCar").newInstance();
调用SamllCar的make方法,如下:
Method testMethod=smallCar.getMethod("make",nulll);
IOC容器的实现方式:xml配置和反射。
BeanFactory支持两个对象模型:
单态模式:提供了特定名称的对象实例的共享。
原型模式:确保每次检索都会创建单独的对象。
IOC的缺点:
1、生成一个对象的步骤变复杂了。
2、使用反射编程,效率降低。
3、xml配置文件的重构支持减弱,因为IDE不支持xml修改类名。
三、依赖注入DI
IOC的依赖模式有三种:
1、接口注入 服务需要实现专门的接口,通过接口可以查询依赖性。具有侵略性,接口之间关联性太强。
2、构造注入 使依赖以构造函数的形式提供
3、设置注入 通过JavaBean提供对象的依赖性。
四、Spring的IOC容器装载机制
装载机制主要有四种:BeanFactory和ApplicationContext,还有不常用的BeanWarpper和WebContext机制
浙公网安备 33010602011771号