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