spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,ibatis框架等组合使用。
二、架构概述
1、轻量级
Spring 是非侵入性的。也就是说基于 Spring 开发的应用中的对象可以不依赖于Spring的 API。
2、依赖注入(DI --- dependency injection、IOC)
IOC(Inversion of Control)控制反转:其思想是反转资源获取的方向。传统的资源查找方式要求组件向容器发起请求查找资源,作为回应, 容器适时的返回资源。而应用了 IOC 之后, 则是容器主动地将资源推送给它所管理的组件, 组件所要做的仅是选择一种合适的方式来接受资源。这种行为也被称为查找的被动形式
DI(Dependency Injection) — IOC 的另一种表述方式:即组件以一些预先定义好的方式(例如: setter 方法)接受来自如容器的资源注入. 相对于 IOC 而言,这种表述更直接。
在spring中BeanFacotory是IoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。
3、面向切面编程(AOP --- aspect oriented programming)
AOP就是纵向的编程。例如:业务1和业务2都需要一个共同的操作,与其向每个业务中都添加同样的代码,不如只写写一遍代码,让两个业务共同使用这段代码。spring中面向切面变成的实现有两种方式,一种是动态代理,一种是CGLIB,动态代理必须要提供接口,而CGLIB实现是有继承。
4、容器: Spring 是一个容器, 因为它包含并且管理应用对象的生命周期。
5、框架: Spring 实现了使用简单的组件配置组合成一个复杂的应用. 在 Spring 中可以使用 XML 和 Java 注解组合这些对象。
6、一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库 (实际上 Spring 自身也提供了展现层的 SpringMVC 和 持久层的 Spring JDBC)。
三、优缺点
1、框架优点
-----轻量级的容器框架没有侵入性。
-----使用IoC容器更加容易组合对象直接间关系,面向接口编程,降低耦合。
-----AOP可以更加容易的进行功能扩展,遵循ocp开发原则。
-----创建对象默认是单例的,不需要再使用单例模式进行处理。
2、框架缺点:业务功能依赖spring特有的功能,依赖与spring环境。
四、sping开发环境搭建
1、下载sping的框架,从中得到需要的jar包
2、配置Spring 的XML文件: 一个典型的 Spring 项目需要创建一个或多个 Bean 配置文件, 这些配置文件用于在 Spring IOC 容器里配置 Bean.。Bean 的配置文件可以放在 classpath 下, 也可以放在其它目录下。
3、编写处理业务代码,通过spring框架获取相应的bean实例。