Spring的依赖注入.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Spring的依赖注入

依赖注入,是Spring的核心机制,可以使Spring的bean以配置文件组织在一起,而不是以硬编码的方式耦合在一起 所谓依赖注入,是指在程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入,Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持对POJO之间依赖关系的管理 依赖注入通常有两种: 设值注入 构造注入 设值注入是指通过setter方法传入被调用者的实例。 Person接口代码如下: public interface Person { //Person接口里定义一个使用斧子的方法 public void useAxe(); } Axe接口的代码如下: public interface Axe { //Axe接口中有一个砍的方法 public void chop(); } Person接口的实现类代码如下: public class Chinese implements Person { //面向Axe接口编程,而不是具体的实现类 private Axe axe ; //默认的构造器 public Chinese(){ } //设置注入所需的setter方法 public void setAxe(Axe axe){ this.axe = axe; } //实现Person接口的useAxe方法 public void useAxe(){ System.out.println( axe.chop()); } } Axe的第一个实现类代码如下: public class StoneAxe implements Axe{ //默认构造器 public StoneAxe(){ } public String chop(){ return 石斧砍的真慢 ; } } 下面采用Spring的配置文件将Person实例和Axe实例组织在一起,配置文件如下所示: ?xml version=1.0 encoding= UTF-8? !-- beans是Spring配置文件的根元素 -- beans xmlns=/schema/beans xmlns:xsi=/2001/XMLSchema-instance xsi:schemaLocation=/schema/beans /schema/beans/spring-beans-2.5.xsd !-- 定义第一个bean,该bean的id为 chinese,class指定该bean实例的实现类 -- bean id= chinese class =lee.Chinese !-- property元素用来指定需要容器注入的属性,axe属性需要容器注入, 此处是设值注入,因此Chinese类必须拥有setXxx方法 -- property name=axe ref local=stoneAxe / /property /bean !-- 定义第一个stoneAxe bean -- bean id= stoneAxe class =lee.StoneAxe/ /beans 从配置文件可以看到Spring管理bean的灵巧性,bean与bean之间的依赖关系被放在配置文件里组织,而不是写在代码中,通过配置文件的指定,Spring能精确的为每个bean注入属性,因此,配置文件里bean的class元素不能使接口 ,而必须是真正的实现类, 另外,Spring会自动接管每个bean定义里的property元素定义,Spring会在执行无参数的构造器后,创建默认的bean实例,并调用对应的setter方法为程序注入属性值,在这里,property定义的属性值将不再由该bean来主动创建和管理,而是接收Spring的注入 每个bean的id属性是该bean的唯一标识,程序通过id属性来访问bean,bean与bean的依赖关系也通过id属性关联 下面是主程序部分 public class B

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档