- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
struts课件8
第八章 使用Spring容器管理对象 (构建组件库的框架) 回顾 预习检查 根据你的理解,“依赖注入”是什么? 依赖:复用组件的含义 注入:项目如何引用已有的组件 根据你的理解,谈谈“依赖注入”适于在项目中应用吗? 你理解的“面向方面编程(AOP)”是什么样的? 方面:待解决的计算机世界的问题所涉及的需求实现,或者理解为解决问题的各个入手点。 本章任务 使用“依赖注入”实现“动态组装”的打印机 使用“面向方面编程”实现日志系统 本章目标 掌握Spring依赖注入的原理 掌握Spring AOP原理 Spring之父 Rod Johnson SpringFramework创始人, interface21 CEO 丰富的c/c++背景,丰富的金融行业背景 1996年开始关注Java服务器端技术 Servlet2.4和JDO2.0专家组成员 2002年著写《Expoert one-on-one J2EE设计与开发》,改变了Java世界 技术主张:技术实用为本 音乐学博士 Spring的绿草丛 Spring : 轻量级框架, Java EE的春天,当前主流框架 目标: 使现有技术更加易用,推进编码最佳实践 更易复用,一个是框架的复用,一个是组件的复用 内容: 依赖注入容器,AOP实现(声明式事务), DAO/ORM支持,Web集成 为什么使用依赖注入(DI) “过于”复杂的软件系统 组件化的思想 依赖注入:强制将组件的构建和使用分开 怎样使用依赖注入 如何开发一个打印机? 打印机功能的实现依赖于 墨盒 和 纸张。 步骤: 1、定义墨盒和纸张的接口标准。 2、使用接口标准开发打印机。 3、组装打印机。 4、运行打印机。 怎样使用依赖注入 定义组件接口 墨盒接口:Ink 纸张接口:Page 使用接口开发打印机 怎样使用依赖注入 3、组装打印机 1、为了方便组装,我们给Printer类的ink和paper属性增加setter方法 2、创建或得到Ink和Paper的实现类 3、使用Spring进行组装 编辑applicationContext.xml文件 组装打印机 依赖注入:组装打印机 怎样使用依赖注入 4. 运行打印机 项目中应用依赖注入 使用依赖注入组装原有系统 小结 编写gbeens.xml,使下面的程序输出: “张嘎说:三天不打小鬼子,手都痒痒” 面向方面编程(AOP) Spring带来的好处:让我们可以 “专心做事”,不用关心流程如何实现,只需要在固定流程下实现具体操作。 Aspect:方面 哪些“方面”需要关注: 怎样使用AOP 使用AOP方式实现日志系统 业务介绍:将业务逻辑层每个方法的调用时间和参数输出到控制台 AOP思路:分别编写 业务逻辑代码 和 “方面”代码,运行时再组装 1、编写业务逻辑接口和实现类,不用关心“方面” 怎样使用AOP 2、编写方面代码,实现 MethodBeforeAdvice接口 怎样使用AOP 3、组装 怎样使用AOP 小结 AOP目标:专心做事 AOP原理 将散布在系统中的公共功能集中解决 AOP实现 采用一个机制 1. 将复杂的需求分解出不同方面 2. 专心做事 3. 组装起来运行 小结 Spring的AOP机制 在方法调用前、后、环绕或抛出异常时,“织入”方面代码 通过代理访问被代理的类 小结 在线购书系统中,要求不修改BookBizImpl代码的情况下增加如下功能: 对买书的用户进行返利:每买一册书返利3元。 即:每调用一次buy方法打印:“[销售返利][时间]用户名:返利3元。” 总结 Spring包含哪些内容? 依赖注入的好处是? Spring怎么实现依赖注入? “面向方面编程”的好处是? Spring怎么实现AOP? * * 补全下面的代码。 public List searchByTitle(String title){ Session session = super.getSession(); String hql = (1) ; (2) ;//创建Query对象 query.setString( (3) , title); return (4) ; } 配置为使用colorInk、 b5Paper时的运行结果 配置为使用greyInk、 a4Paper时的运行结果 面向对象使系统的实现变得容易 当系统复杂到一定程度时,仅仅面向对象就不够了 目的:解耦合。实现每个组件块时只关注组件内部的事情 之前的引用方式: OBJ Obj=new OBJ
文档评论(0)