随笔-10  评论-23  文章-32  trackbacks-0

1.1 spring是什么?

 

(1)Spring是什么

答:spring是一个开源框架,由Rod Johnson创建。Spring是为了简化企业级应用开发应运而生的。使用Spring可以用简单的javaBeans实现那些以前只有在EJB中才可以使用的功能。任何Java应用开发都可以从Spring的简单、可测试、松耦合特征中获得益处。

补:在刚接触spring的时候,也没有看过spring官方的英文文档,我以为spring只有在开发WEB项目的时候才可以使用,我所了解的全部关于spring的东西就是,可以使用spring将Struts2和Hibernate整合到一起。

收获:spring是一个开源框架,任何Java应用程序都可以使用spring,并且从中获益。

 

(2)Spring的基本组成部件

Spring是一个轻量级的DI和AOP容器框架

基本组成部件如下:

1)轻量级               从大小和应用开支上看为轻量级,并且spring是非侵入式的

2)依赖注入(DI)      一种松耦合技术,或者称为“控制反转”。主要思想:对象被动接收依赖类,不主动寻找

3)面向切面(AOP)    为面向切面编程提供强大支持,目的:分离系统级逻辑功能实现和我们自己的业务逻辑实现,例如将事务功能从业务逻辑中分离出去

4)容器                 Spring是一个容器,包含和管理Bean的生命周期和配置。但是Spring是轻量级的

5)框架                 spring提供了很多基础功能(如事务,持久层集成,安全)。我们使用Spring可以将简单的组件配置组成一个复杂应用

总之:使用Spring可以简化应用程序开发,以及得益于spring松耦合和可测试的优点。

 

(3)Spring由几个位于Spring核心容器之上的几个模块组成,这种模式特性使用户可以根据需要灵活使用Spring框架,各个模块可以选择使用。

    下图不是很复杂,可以帮助我们再比较宽的层次上理解Spring的组成。方便记忆。

    Spring framework

    各个模块简单介绍如下:

    1. 核心容器(Core)     为Spring框架提供基础功能,BeanFactroy在这个模块定义,是“依赖注入”功能的基础。
    2. Application Context(Context)      应用程序上下文模块,扩展自BeanFactory,添加了I18N国际化,应用生命周期事件,验证支持。另外提供了企业级的服务如:电子邮件服务、JNDI访问、EJB集成、远程调用、定时服务,支持与其他模板集成。如果BeanFactory是Spring成为容器,ApplicationContext则使spring成为框架。
    3. Spring 的AOP模块   此模块对面向切面编程提供强大支持。是spring应用开发切面的基础,此模块提供多种方法来建立切面,包括基于AOP Alliance接口的切面建立和对AspectJ的支持。
    4. JDBC抽象及DAO模板  spring的jdbc和dao模板把样板代码抽象出来,使数据库代码简单明了,并且建立了一个容易理解的数据库异常层
    5. ORM映射集成模块   spring的ORM支持建立在DAO支持之上,spring为许多流行的ORM框架提供了钩子程序,例如Hibernate,JPA,JDO,Ibatis等
    6. java 管理扩展(JMX)   spring的jmx模块可以方便的展现应用Bean,就像JMX Mbeans,从而可以监控和重新配置运行中的应用程序。
    7. java EE 连接器 API(JCA)   jca提供了一种标准的方法来集成java应用和多种企业信息系统,包括主框架和数据库,spring对jca的支持类似于对jdbc的支持,也是抽象样本代码到模板中。
    8. spring MVC框架   spring提供了自己的MVC框架,是一个松耦合的基于三层模式的web框架。 
    9. spring portlet MVC 框架   最新的spring版本支持portlet2.0的所有特性。
    10. spring web模块   spring的web模块提供了支持spring mvc和spring portlet mvc 的类,还有spring的web模块提供了对struts和jsf框架的支持。另外此模块还提供了几个面向web的任务,例如多部分文件上传等
    11. 远程调用   当通过网络来访问其他应用时,某些形式的远程调用将被用于通讯。spring的远程调用模块会使编写远程对象很简单,就像使用本地的pojo一样。spring支持如:rmi,Hessian,Burlap,JAX-RPC,spring自己的HTTP Invoker。
    12. java 消息服务(jms)   远程调用的下面是取决于网络的可靠性和通讯双方的可用性,基于消息的通讯是可靠的。spring的jms模块可以将消息发送到jms队列和主题;可以帮助创建消息驱动的pojo,能够处理异步消息。

   总结:spring尽量避免重新开发所有事情,并倾向于保留现有的API和框架。通过spring可以轻松集成多种框架为一体,并且能够享受spring带来的松耦合和可测试特性。

posted on 2010-04-12 23:09 liuyimx 阅读(305) 评论(0)  编辑  收藏 所属分类: 读书笔记

只有注册用户登录后才能发表评论。


网站导航: