Spring专题.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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语法,如一个类为A public 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语法。具体配置如 下:

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档