- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 认识Spring 本课程目标 掌握Spring术语与概念 配置开发Spring环境 Bean、消息、事件 Spring AOP JDBC及事务支持 Spring Web MVC框架 View层方案、Web框架整合 在Spring中整合Hibernate 术语介绍 作为全方位的应用程序框架(Framework) 术语描述-1 术语描述-2 ⑥持久层(Persistent) Spring提供DAO、编程事务与声明式事务,对于ORM工具(Hibernate、iBATIS)的整合及使用上简化。 控制反转(IOC) 类设计改进 IoC思想 依赖关系的转移 ①高层模块不依赖于底层模块,必须依赖于抽象 ②实现必须依赖于抽象,而不是抽象依赖于实现 体会: 可以看到,无论底层的存储实现如何变动,对于 Business类来说无须做任何修改。 依赖注入(DI) 保留抽象接口,让组件依赖于抽象接口。当组件要与其他实际的对象发生依赖关系时,由抽象接口来注入依赖的实际对象 实现方式 ①Type 1 IoC:Interface injection ②Type 2 IoC: Setter injection(推荐使用) ③Type 3 IoC: Constructor injection Type 1 IoC Type 3 IoC 示例 利用Type 2 IoC方式实现下列程序 代码分析 代码分析 代码分析 代码分析 小结 IoC表示是一种依赖关系的转移。 程序的业务逻辑部分应该设计为可重用,不应该受到所使用框架或容器影响。 配置开发Spring环境 下载、设置Spring / 准备Spring设计环境 编写第一个Spring程序 代码分析 代码分析 小结 步骤 ①利用XmlBeanFactory读取xml配置文件并建立BeanFactory实例 ②BeanFactory依据配置文件完成依赖注入 ③通过getBean()方法指定Bean名称取得Bean实例 示例-2 改写Business程序 代码分析 总结 掌握Spring各种抽象术语 掌握Ioc及DI思想 了解依赖注入各种方式 配置Spring环境,编写简单Spring应用程序 Spring2.0 Spring2.0 Spring 轻量级 非侵入性(No intrusive) 容器 Inversion of Control Dependency Injection Aspect-oriented programming 持久层 ①轻量级(Lightweight) Spring 核心包容量不到1MBde 大小,可以在很多小型设备中使用Spring ②非侵入性(No intrusive) 增强应用程序组件的可重用性,减少对框架的依赖 ③容器(Container) 根据配置文件自动生成对象及属性等,不用编写任何代码来产生对象 ④Inversion of Control(IOC)与Dependency Injection(DI) IOC目的就是依赖于抽象;对象之间的关系由容器根据配置文件将依赖 注入指定的对象中 ⑤AOP(Aspect-oriented programming) 基于代理及拦截器的机制,与Spring IOC 结合,采用运行时Weaving方式在 Spring框架的应用程序中使用各种声明式系统级服务。 面对以上的概念可能不太了解 在以后的章节中从实践里体会 应用程序 存储的需求 saveToFloppy() …… void saveToFloppy(){ …… } …… 直接在高层的应用程序中调用 底层模块的API,导致应用程序 对底层模块产生的依赖… 假设需要使用USB作为存储 介质,该应用程序无法直接 重用,需要修改。导致由于 底层模块的变化,造成高层的 应用程序跟着变化。 底层模块 public class Business{ private FloppyWriter writer=new FloppyWriter(); …. public void save(){ …. writer.saveToFloppy();//依赖于底层模块 } } public interface IDeviceWriter{ public void saveToDevice(); } public class FloppyWriter implement IDeviceWriter{ public void saveToDevice(){ //实际存储在软盘 } } pub
文档评论(0)