- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring专题
Spring专题
Spring主要是业务层框架,现在已经发展成为一个完整JavaEE开发框架,它的主要特点是IoC DI和AOP等概念的融合,强项在面向切面AOP。推出之初因为Ioc/AOP等新设计理念值得框架设计者学习,现在已经成为Java世界主流框架,从其2.0引入auto-wired自动配对以后,开发效率大大提高,SpringMVC以简化和REST风格著称。
Struts + Spring + Hibernate 号称SSH框架是JavaEE经典开发组合。
Spring是于2003 年兴起的一个轻量级的Java 开源框架框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。Rod Johnson 对Java EE正统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。Spring相比EJB,重新重视和定义了POJO.
平时,我们需要生成一个对象,使用new语法,如一个类为Apublic class A{ public void myMethod(){ System.out.println(hello); }}如果我们在 B中调用A,那么如下代码:public class B{ public void invoke(){ A a = new A(); a.myMethod(); }}每次执行invoke方法时,都要生成一个A对象,如果A对象代码较长,这是费时的事情。于是有如下写法:public class B{ A a = new A(); public void invoke(){ a.myMethod(); }}将A对象变成B的类属性。 如果我们不想在B中实现A的实例,也就是不想立即new A(),而是想通过外界传入, 注意,如果你想知道为什么,这里涉及到设计模式以及解耦等因素,进一步感兴趣者可学习 本站的GoF 23 种设计模式。
如果想让A的实例从外界传入,有两种写法:public class B{ A a; public void setA(A a){ this.a = a; } public A getA(){ return a; } public void invoke(){ a.myMethod(); }}这种写法,A并没有被实例化,需要通过外界调用setA方法,将A的对象实例赋入B中. 或者通过B的构造函数传入,如下:public class B{ A a; public B(A a){ this.a = a; } public void invoke(){ a.myMethod(); }}上述两种写法在编程中是经常发生的,B作为调用者,A是被调用者,A的实例化不在 调用者B内部中完成,而是通过构造函数或setXXX方法赋值进来,这种方式我们称为依赖 性注射(IoC 模式),B 和A 的依赖联系是通过构造函数或setXXX 方法赋值进来,这样, 最大程度解耦了调用者B和被调用者A之间的耦合联系。
Spring如何实现依赖注射?上文提到:A的实例化不在调用者B内部中完成,而是通过构造函数或setXXX 方法赋 值进来,Spring实际就是完成这个赋值的过程。 为了让Spring自动完成B代码中的A的实例化,需要通过配置文件告诉Spring有关A 的类的属性,这个配置是applicationContext.xml文件。 在 applicationContext.xml中,我们先定义JavaBeans为B的配置:beans bean id=b class=springsimple.B//beans这是最常用的JavaBeans的定义,id相当于对象名,当前文件应该是唯一,如果你有Jsp?编程经验,这非常类似于Jsp里调用JavaBeans语句:jsp:userBeans id=b class=springsimple.B/
再在applicationContext.xml定义A的配置如下:beans bean id=b class=springsimple.B/ bean id=a class=springsimple.A//beans这样我们告诉Spring我们有两个JavaBeans,现在解决关键问题,B代码中还调用了A, 那么如何让Spring将A的实例注射到B中?使用Spring配置的property语法。具体配置如 下:
您可能关注的文档
最近下载
- 《大学之道》《人皆有不忍人之心》(成语识记+挖空特训+情境默写+写作素材) 统编新教材高考语文课内古诗文【要点梳理与素材积累】.docx VIP
- 五年级道德与法治3,主动拒绝烟酒与毒品优秀教案.pdf
- 《美丽的丝巾ppt课件》小学美术浙人美版二年级下册_2.ppt
- 《论语十二章》(成语识记+挖空特训+情境默写+写作素材) 统编新教材高考语文课内古诗文【要点梳理与素材积累】.docx VIP
- 电动单梁起重机设计计算书.doc
- 2069-3-3101-002 WKB产品判定准则-外发.docx
- 露天矿组织架构、部门职责.pdf VIP
- 《数字化测图》课程标准(高职).docx
- 医疗行业医疗设备采购方案.docx VIP
- 朝阳市第四高中诗词大会十二宫格题.ppt
文档评论(0)