spring概述:
spring是一个轻量级的IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面)的容器框架。spring特点:轻量(大小和开销),控制反转(促进松耦合),面向切面,容器,框架。
Spring 体系结构:
1、 数据访问和集成(JDBC、ORM、OXM、JMS、事务管理);
2、 Web及远程操作(MVC、Portlet、Web Service);
3、 测试框架;
4、 AOP(Spring Aop、Aspects、Instrument)面向切面;
5、 IOC(Bean、Context、表达式语言);
各模块介绍:
(1)Spring核心模块:
spring框架中最基础、最重要的模块,实现IOC的功能,将类与类之间的依赖关系从代码中脱离出来,用配置的方式进行依赖关系描述,由IOC容器负责依赖类之间的创建、拼接、管理、获取等工作。BeanFactory借口是spring框架的核心接口,实现容器的多种功能。Context模块构建于核心模块之上,扩展BeanFactory的功能,还提供许多企业业务服务的支持。表达式语言是统一表达式语言(unified EL)的一个扩展,用于查询和管理运行期的对象,支持获取和设置对象属性,调用对象方法、操作数组、集合等。
(2)AOP模块;
AOP是进行横切逻辑编程的思想,开拓了人们思考问题的思路。在AOP模块中,spring提供了满足AOP Alliance规范的实现,还整合了AspectJ这种AOP语言级的框架。
(3)数据访问和集成模块:
spring 在DAO的抽象层面,建立了一套面向DAO层统一的异常体系,同时将各种访问数据的检查型异常转化为非检查性异常,为整合各种持久层框架提供基础。spring通过模块化技术对各种数据访问技术进行了浅层的封装,使数据访问程序得到大幅度简化。
(4)Web及远程数据操作模块
该模块建立在Appication Context模块上,提供Web应用的各种工具类,还提供了多项面向Web的功能,如:透明化文件上传、Velovity等。
(5)Web及远程访问模块
spring自己提供了一个完整的类似于struts的MVC框架,称为Spring MVC。针对每个功能模块,Spring框架都提供了独立的jar包,在java应用程序中引入Spring的类库文件,即可搭建起Spring的开发环境,如是web项目,只需将Spring的类库文件复制到WEB-INF/lib目录下即可。
IOC概述:
Spring框架的核心功能是控制反转IOC,面向切面AOP和声明式事物等功能都依赖于IOC实现的基础上。控制反转的含义:控制权由应用代码中转到了外部容器,控制权的转移就是反转。
为实现IOC的功能,Spring提供了两个访问接口:
1. org.springframework.beans.factory.BeanFactory:Bean工厂,借助于配置文件能够实现对JavaBean的配置和管理,用于向使用者提供Bean的实例。
2. org.springframework.context.ApplicationContext:ApplicationContext构建在BeanFactory基础之上,提供更多的实用功能。*
BeanFactory
BeanFactory是spring框架的IOC容器的核心接口,作为制造Bean的工厂,BeanFactory接口负责向容器的使用者提供实例,其主要功能是完成容器管理对象的实例化,并根据预定的配置完成对象之间依赖关系的组装,最终向使用者提供已完成装配的可用对象。
BeanFactory接口的方法说明:
方法 :(1)boolean containsBean(String name)
(2)Object getBean(String name)
(3)Object getBean(String name,Class requiredType)
(4)ClassgetType(String name)
功能:(1)判断spring容器是否包含id为name的Bean对象
(2)返回容器id为name 的Bean对象
(3)返回容器中id为name、类型为requiredType的Bean
(4)返回容器中id为name 的Bean类型