- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十八讲Spring
* * * 配置为使用greyInk,a4Paper时的运行结果 * * 这些方面都是一个完整、健壮的系统不可或缺的。缺了哪个都不成! “这正是...”提示框使用了Spring风格的样式。 * * 第十八讲 Spring 湖南文理学院计算机学院 王蓉 内容概述 18.1 Spring简介 18.2 依赖注入 18.3 AOP 第18讲 Spring 本章任务 使用“依赖注入”实现“动态组装”的打印机 使用“面向方面编程”实现日志系统 配置为使用colorInk、 b5Paper时的运行结果 配置为使用greyInk、 a4Paper时的运行结果 18.1 Spring简介—Spring之父 Rod Johnson SpringFramework创始人, interface21 CEO 丰富的c/c++背景,丰富的金融行业背景 1996年开始关注Java服务器端技术 Servlet2.4和JDO2.0专家组成员 2002年著写《Expoert one-on-one J2EE设计与开发》,改变了Java世界 《Expert One-on-one J2EE Development without JEB》 技术主张:技术实用为本 音乐学博士 2003年2月,Spring开源工程启动。 目的:组件的构建和使用分开。 春天:相对于EJB重量级框架的冬天 Spring的框架 Spring : 轻量级框架, Java EE的春天,当前主流框架 目标: 使现有技术更加易用,推进编码最佳实践 内容: 依赖注入容器,AOP实现(声明式事务), DAO/ORM支持,Web集成 18.2 依赖注入 好莱坞原则(Hollywood Principle:不要调用我,让我来调用你)。 耦合的坏处:如果改变程序的一个模块要求另一个模块同时发生变化,就认为这两个模块发生了耦合。 目的:组件的构建和使用分开。 DI = Dependency Injection。 IoC = Inversion of Control。 18.2为什么使用依赖注入(DI) 面向对象使系统的实现变得容易 当系统复杂到一定程度时,仅仅面向对象就不够了 目的:解耦合。实现每个组件块时只关注组件内部的事情 要点:明确定义组件间的接口 “过于”复杂的软件系统 组件化的思想 依赖注入:强制将组件的构建和使用分开 组件的使用 组件的生产 接口的定义 运行时注入 普通程序 import java.util.Calendar; public class DaoExample { public String sayHello(String name){ int hour=Calendar.getInstance().get(Calendar.HOUR_OF_DAY ); if (hour6) return 凌晨早+name; if (hour12) return 早上好+name; if (hour13) return 中午好+name; if (hour18) return 下午好+name; return 晚上好+name; } } public class ServiceExample { private DaoExample daoExample =new DaoExample(); public void service(String name){ System.out .println(daoExample.sayHello(name)); } } public class Test { public static void main(String[] args) { String name=Helloween; ServiceExample service=new ServiceExample(); service.service(name); } 怎样使用依赖注入 定义组件接口 DAO接口:IDAO Service接口:IService public interface IDao { public String sayHello(String name); } public interface IService { public void service(String name); } 使用接口开发 public class ServiceImpl implements IService{ private IDao dao; public IDao getDao()
文档评论(0)