Spring企业应用开发.ppt
《Spring企业应用开发.ppt》由会员分享,可在线阅读,更多相关《Spring企业应用开发.ppt(38页珍藏版)》请在三一办公上搜索。
1、Spring企业应用开发,Spring简介,本节课程目标,简介 Spring框架 J2EE架构的介绍Spring和EJB的比较?控制反转(Inversion of Control)概念介绍 依赖注入(Dependency Injection)概念介绍,Spring框架概述,Spring 是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的 Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为
2、构建完关注所有架构层的完整解决方案方面是独一无二的。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了 Hibernate和其他O/R mapping解决方案。,Spring框架概述,Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务-如果你需要-还能实现你自己的 aspects。这个框架足够强大,使得应用程序能够抛开EJB的复
3、杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器 集成的强大而灵活的MVC Web框架。,简介 Spring框架-什么是Spring框架?,Spring 的核心是个轻量级(Lightweight)容器(Container),实现了IoC(Inversion of Control)模式的容器,基于此核心容器所建立的应用程序,可以达到程序组件的松散耦合(Loose coupling),让程序组件可以进行测试(Testability),这些特性都使得整个应用程序可以在架构上与维护上都能得到相当程度的简化。,图解,Core 封装包是框架的最基础部分,提供IoC和依赖注入
4、特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。,图解2,DAO 提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。并且,JDBC 封装包还提供了一种比编程性更好的声
5、明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适用。ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。其中包括JPA、JDO、Hibernate 和 iBatis。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到简单声明性事务管理。,图解3,Spring的 AOP 封装包提供了符合 AOP Alliance规范的面向方面的编程(aspect-oriented programming)实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(poin
6、tcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中,这有点象.Net的attribute的概念。Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IoC容器初始化和针对Web的application context。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。Spring中的 MVC 封装包提供了Web应用的Model-View-Controller(MVC)实现。Spr
7、ing的MVC框架并不是仅仅提供一种传统的实现,它提供了一种 清晰的 分离模型,在领域模型代码和web form之间。并且,还可以借助Spring框架的其他特性。,简介 Spring框架-什么是Spring框架?,轻量级(Lightweight)Spring 的核心在档案容量上只有不到 1MB 的大小,而使用 Spring 核心所需要的资源也是很小的,而 Spring 是个非侵入性(Nonintrusive)框架,它的目的之一,是让应用程序不感受到框架的存在,减低应用程序从框架移植时的负担。容器(Container)Spring 核心本身是个容器,管理对象的生命周期、对象的组态、依赖式注入等,
8、并可以控制对象在创建时是以 原型(Prototype)或 单例(Singleton)的方式来建立。,简介 Spring框架-什么是Spring框架?,IoC(Inversion of Control)Spring 的核心概念是IoC,更具体而易懂的名词是依赖注入(Dependency Injection),使用 Spring,您不必自己在程序代码中维护对象的依赖关系,只需在组态档中加以设定,Spring 核心容器会自动根据组态将依赖注入指定的对象。除了这些特性之外,Spring 的目标是实现一个全方位的整合框架,在 Spring 框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使
9、用其它的框架方案加以替代,Spring 希望提供 one-stop shop 的框架整合方案。,简介 Spring框架-什么是Spring框架?,AOP 框架 Spring 最为人重视的另一方面是支持AOP(Aspect-oriented programming),然而 AOP 框架只是 Spring 支持的一个子框架,说 Spring 框架是 AOP 框架并不是一件适当的描述,人们对于新奇的 AOP 关注映射至 Spring 上,使得人们对于 Spring 的关注集中在它的 AOP 框架上,虽然有所误解,但也突显了 Spring 的另一个令人关注的特色。,简介 Spring框架-什么是Spr
10、ing框架?,持久层 Spring 提供对持久层的整合,如 JDBC、O/R Mapping工具(Hibernate、iBATIS)、事务处理等。Web 框架 Spring 也提供 Web 框架的解决方案,但您也可以将自己所熟悉的 Web 框架与 Spring 整合,像是 Struts、Webwork等,都可以与 Spring 整合而成为适用于自己的解决方案。对于一些服务,例如 JNDI、Mail、排程、远程等,Spring不直接提供实作,而是采取抽象层方式进行包装,让这些服务在使用时可以有一致的使用模式且更为方便,什么是J2EE?,什么是J2EE,是业界标准有超过50家厂商实现了这些标准(工
11、具,应用服务器)是各个厂商间协同工作的结果J2EE平台包括:共同认可的规范参考实现(Reference Implementation)测试套件(Test Suite)J2EE蓝本(Blueprints):设计指南基于Java技术 Java运行时环境(JRE)解释执行中间字节码(bytecode),J2EE架构的介绍,介绍J2EE的三层架构展现层-可以Struts框架持久化层-可以用Hibernate业务逻辑层-可以Spring注意:集成各种框架时,一定要注意各自的配置文件是怎么样的关系。Web.xmlstruts-config.xmlhibernate-config.xmlapplicatio
12、nContext.xml,Spring和EJB比较?,Spring和EJB是什么关系Spring核心是依赖注入模式,它可以单机、或与现有应用服务器一起工作,使用了大量的XML配置EJB3.0是一个标准框架,它使用了大量的Java标注。Spring可以随时测试,而EJB测试非常麻烦预留作业:大家下去请寻找两者对比的详细资料,以便理解两者区别。,控制反转Inversion of Control,Spring 的核心概念是 IoC,IoC 的抽象概念是依赖关系的转移,像是高层模块不应该依赖低层模块,而是模块都必须依赖于抽象是 IoC 的一种表现,实现必须依赖抽象,而不是抽象依赖实现也是 IoC 的一
13、种表现,应用程序不应依赖于容器,而是容器服务于应用程序也是 IoC 的一种表现。IoC 全名 Inversion of Control,如果中文硬要翻译过来的话,就是控制反转。初看 IoC,从字面上不容易了解其意义,我觉得要了解 IoC,要先从 Dependency Inversion 开始了解,也就是依赖关系的反转。理解核心:IoC就是将依赖关系进行了反转,要理解IoC,得先理解依赖关系,什么是依赖关系呢?,控制反转Inversion of Control,简单的说,在模块设计时,高层的抽象模块通常是与业务相关的模块,它应该具有重用性,而不依赖于低层的实作模块,例如如果低层模块原先是软盘存取
14、模式,而高层模块是个存盘备份的需求,如果高层模块直接调用低层模块的函数,则就对低层模块产生了依赖关系。,控制反转Inversion of Control,举个例子,例如下面这个程序:public class CapterTest.void save().saveToFloppy();由于save()程序依赖于依赖于saveToFloppy(),如果今天要更换低层的存储模块为Usb盘,则这个程序没有办法重用,必须加以修改才行,低层模块的更动造成了高层模块也必须跟着更动,这不是一个好的设计方式,在设计上希望模块都依赖于模块的抽象,这样才可以重用高层的业务设计。,控制反转Inversion of C
15、ontrol,如果以对象导向的方式来设计,依赖反转(Dependency Inversion)的解释变为程序不应依赖实现,而是依赖于抽象,实现必须依赖于抽象。来看看下面这个 Java 程序:public class BusinessObject private FloppyWriter writer=new FloppyWriter();.public void save().writer.saveToFloppy();,控制反转Inversion of Control,在这个程序中,BusinessObject 的存盘依赖于实际的 FloppyWriter,如果今天想要将存盘改为存至 Usb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spring 企业 应用 开发
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6524293.html