- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
框架程序设计java 框架程序设计java 框架程序设计java * * 第6章 Spring框架基础 之控制反转2 框架程序设计(Java) * 6.0学习目标 DI配合接口编程 4 软件工程系本科课件 框架程序设计java * 6.4DI配合接口编程 回顾Spring的优点 低侵入式设计,代码污染极低 Write Once, Run Anywhere DI有效的降低了耦合度 AOP提供了通用任务的集中管理 ORM和DAO简化了对数据库访问 高度开放性,并不强制 对于主流的应用框架提供了集成支持,如:集成Hibernate、JPA、myBaits等,这样更便于应用的开发 软件工程系本科课件 框架程序设计java * 6.4DI配合接口编程 例1:完成一个字母大小写转换的案例 将字母转化为大写工具类: public class UpperLetter { //将字母转化为大写 public String change(String letter){ return letter.toUpperCase(); } } 软件工程系本科课件 框架程序设计java * 6.4DI配合接口编程 将字母转化为小写工具类: public class LowerLetter { //将字母转化为小写 public String change(String letter){ return letter.toLowerCase(); } } 现在用户希望将一串字母转化为大写,因此我们将UpperLetter类配置到Spring容器中,如下: bean id=changeLetter class=service.UpperLetter /bean 软件工程系本科课件 框架程序设计java * 6.4DI配合接口编程 将一串字母转化为大写的代码如下所示: String letter=abCdRg; //初始化容器上下文 ApplicationContext context=new ClassPathXmlApplicationContext(applicationContext.xml); //从spring容器中获取bean,并强制转化为bean的实际类型 UpperLetter service=(UpperLetter)context.getBean(changeLetter); //调用方法 String result=service.change(letter); System.out.println(result); 软件工程系本科课件 框架程序设计java * 6.4DI配合接口编程 某一天,用户的需求发生了改变,不需要转化为大写了,需要转化为小写: 分为两步来解决 1、修改bean的配置 bean id=changeLetter class=service.LowerLetter /bean 2、修改代码: //从spring容器中获取bean,并强制转化为bean的实际类型 LowerLetter service=(LowerLetter)context.getBean(changeLetter); 软件工程系本科课件 框架程序设计java * 6.4DI配合接口编程 以上的解决方案,既要修改spring的配置文件,又要修改代码,原因就是在我们的main方法中,与具体的字母大小写转换类产生了强耦合(也就是直接关联) 思考一下:如何解除这种强耦合呢? main函数 LowerLetter UpperLetter 直接关联 main函数 LowerLetter UpperLetter ChangeLetter接口 软件工程系本科课件 框架程序设计java * 6.4DI配合接口编程 具体在代码中如何进行解耦呢?分为如下步骤: 1、创建一个接口ChangeLetter public interface ChangeLetter { //将字母进行大小写转换 public String change(String letter); } 2、将UpperLetter和LowerLetter分别实现这个接口 3、代码修改如下: //从spring容器中获取bean,并强制转化为bean的实际类型 ChangeLetter service=(ChangeLetter)context.getBean(changeLetter); 如上处理之后,无论用户再怎么变化需求,都不用修改代码,只需修改配置文件即可,完成解耦 软件工程系本科课件 框架程序设计java * 6.4DI配合接口编程 以上例子就是DI配合接口编程的一个简单的例子,从这个例子中我们可以看出“DI有效的降低了耦合度”
您可能关注的文档
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件1 MyBatis入门.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件02MyBatis 基础操作-简单查询.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件02MyBatis 基础操作-增删改.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件03MyBatis复杂查询-关联查询.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件03MyBatis复杂查询-集合查询-1.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件03MyBatis复杂查询-集合查询-2.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件03MyBatis复杂查询-鉴别器.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件04 01MyBatis自动生成工具.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件04MyBatis动态sql.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件05SpringMVC框架-简易的MVC框架.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件05Spring框架基础-注解方式实现AOP.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件06SpringMVC-RequestMapping设置以及前后台数据交互.pptx
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件06SpringMVC-第一个程序.pptx
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件09SpringMVC-文件上传下载.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件09SpringMVC-文件上传下载及异步数据传输.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件12SSM集成.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件12SSM集成之整理.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件13 简化进销存项目的需求分析与设计.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件mybatis复习要点.ppt
- JavaEE框架技术(SpringMVC+Spring+MyBatis)课件SLMS系统功能实现之登录、退出登录以及员工列表.ppt
原创力文档


文档评论(0)