Spring概述
一、什么是Spring
Spring是个Java企业级开源开发框架,是一个轻量级控制翻转和面向切面的的容器框架。Spring主要用来开发Java应用,但是有些扩展是针对JavaWeb的开发, Spring的目标就是简化Java企业级的应用开发,由于Java软件开发的复杂性,导致了Spring框架的产生。Spring是由基本的JavaBean来完成之前智能由EJB完成的开发任务。然而Spring的开发不仅仅受限于服务器的开发,从简单性、可测试性、松耦合性角度考虑,绝大部分Java应用都收益。
二、使用Spring框架有什么好处
1、轻量:Spring是轻量的,基本版本大约只有2MB。
2、控制翻转(IOC):Spring通过控制翻转实现了松耦合
3、面向切面的编程(AOP):Spring支持面向切面的编程,并将业务和系统服务分隔开
4、容器:Spring包含应用服务对象的管理和生命周期
5、事务管理Spring提供了一个事务管理接口,可以扩展到每一处事物
6、异常处理:Spring提供方便的API对异常进行处理
三、Spring框架的基本模块
Spring由七大功能模块组成:分别是Spring Core、AOP、ORM、DAO、MVC、WEB、Context。
1、Spring Core
Core模块是Spring的核心类库,所有功能都依赖于Core模块,Core主要实现IOC功能,Spring的所有功能都是借助IOC功能来实现的。
2、AOP
AOP模块是Spring的 AOP库,提供了AOP(拦截)机制,并提供常用的拦截器,供用户配置和使用。
3、ORM模块
Spring的ORM模块提供对常用的ORM框架的管理和辅助支持,Spring支持产常用的Hibernate,IBTAS,Jdao等框架的支持,Spring本身不对ORM进行实现,仅对常见的ORM框架进行封装,并对其进行管理
4、DAO模块
Spring提供对JDBC的支持,对JDBC进行封装,允许JDBC使用Spring资源,并能统一管理JDBC事物,并不对JDBC实现。
5、WEB模块
WEB模块提供对常见的框架如Struts1,WEBWORK(Struts2),JSF的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器。
6、Context模块
Context模块提供框架式的Bean访问方式,其他程序可以通过Context访问Spring的Bean资源,相当于资源注入。
7、MVC模块
WEB MVC模块为Spring提供了一套轻量级的MVC实现,在Spring的开发中,我们既可以使用Struts,也可以用Spring自己的MVC框架,相当于Struts,Spring自己的MVC框架更加简洁和方便。
四、BeanFactory
BeanFactory是工厂模式的一个实现,提供了控制翻转功能,用来把应用的配置和依赖从真正的应用代码中分离。
最常用的BeanFactory实现是XmlBeanFactory类
五、XmlBeanFactory
它是根据XML文件中的定义加载到Beans,该容器从XML文件读取配置元数据并用它去创建一个完全配置的系统或应用
六、什么是Spring IOC容器
Spring IOC负责创建对象,管理对象(通过依赖注入,转配对象,配置对象,并且管理这些对象的生命周期)
七、IOC的优点是什么
IOC或依赖注入把应用的代码量降到最低。它使应用容易测试,单元测试不再需要单例和NDI查找机制。最下的代价和最小的侵入性使松散耦合得以实现。IOC容器支持加载服务时的饿汉式初始化和懒加载
八、一个Spring的应用看起来像些什么
1、一个定义了一些功能的接口
2、这实现包括属性,它的Setter,getter方法和函数等
3、Spring AOP
4、Spring 的XML配置文件
5、使用以上功能的客户端程序