创建应用对象之间协作关系的行为通常称为装配(wiring),这就是依赖注入(DI)的本质。

Spring提供了三种主要的装配机制: 1. 在xml中进行显式配置。  2. 在java中进行显式配置。 3. 隐式的bean发现机制和自动装配。

bean的装配:就是bean对象的创建,属性赋值,把创建好的对象赋值给程序的过程。

自动化装置bean

spring 从两个角度来实现自动化装置.1:组件扫描(component scanning),spring会自动发现应用上下文中所创建的应用。

2. 自动装配(autowiring) ,spring自动满足bean之间的依赖

如下:创建一个接口

package soundsystem;public interface CompactDisk {void play();
}

创建一个实现类实现上面的接口.  @Component表明这个类是一个组件类,并告知spring要为这个类创建bean。(@Named可以替换@Component,但在大多数场景中,它们可以是互相替换)

package soundsystem;import org.springframework.stereotype.Component;@Component
public class SgtPeppers implements CompactDisk{private String title = "Sgt. Pepper's Lonely Hearts Club Band";private String artist = "The Beatles";@Overridepublic void play() {// TODO Auto-generated method stubSystem.out.println("Playing "+title+" by "+artist);}
}

组件扫描默认不开启。我们需要配置下spring,让spring寻找带有@Component注解的类。 @ComponentScan默认扫描与配置类相同的包,也就是会扫描这个包以及这个包下的所有子包,查找带有@Compenent注解的类。(使用XML也可以启用自动扫描)

package soundsystem;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;@Configuration
@ComponentScan  // 启动组件扫描,按照默认规则,以配置类所在的包作为基础包来扫描组件。
public class CDPlayerConfig {}

spring应用上下文中所有的bean都会给定一个id,通过@Component("lonelyHeartsClub"),就把lonelyHeartsClub作为bean的id了。

在构造器上添加了@Autowired注解, 这表明当Spring创建CDPlayerbean的时候, 会通过
这个构造器来进行实例化并且会传入一个可设置给CompactDisc类型的bean。

package soundsystem;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class CDPlayer implements MediaPlayer{private CompactDisk cd;@Autowiredpublic CDPlayer(CompactDisk cd){this.cd = cd;}@Overridepublic void play() {cd.play();}
}

@Autowired注解不仅能够用在构造器上,还能够用在属性的Setter方法上,或者其他任何方法上。(@Inject和@Autowired之间有着一些细微的差别, 但是在大多数场景下, 它们都是可以互相替换的
)

注解@ContextConfiguration会告诉spring需要在CDPlayerConfig中加载配置。

spring二:装配bean(自动装配)相关推荐

  1. Spring(二)--------Spring配置、DI依赖注入、Bean自动装配

    Spring(二)--------Spring配置.DI依赖注入.Bean自动装配 5.Spring配置 5.1 别名 设置别名:第一种方式alias <!--其中name为ID的对应值--&g ...

  2. spring Bean自动装配

    spring Bean自动装配 自动装配是使用spring满足bean依赖的一种方式. spring会在应用上下文中为某个bean寻找其依赖的bean. spring自动装配需要从两个角度来实现,或者 ...

  3. spring框架学习(一):Bean的装配方式 ——基于注解的装配、自动装配

    Bean的装配方式 基于注解装配 常用注解: 总结 自动装配 [序言] 在前面的例子中我们就可以看到了使用基于XML方式的缺点了:如果应用中有较多的Bean对象,则会导致xml文件过于臃肿,给后续的维 ...

  4. Spring | Bean自动装配详解

    个人主页:BoBooY的CSDN博客_Java领域博主 前言:上节我给大家讲解了Spring的依赖注入,这一节我们讲解Spring中Bean如何自动装配,废话不多说,直接上正文! 文章目录 Bean的 ...

  5. Spring学习5之自动装配Bean01

    前言 之前我们都是手动装配Bean,但是Spring里面有一个自动装配的方法! 一.自动装配是什么? 自动装配是Spring满足bean依赖一种方式! Spring会在上下文中自动寻找,并自动给bea ...

  6. Spring依赖注入与自动装配

    Spring依赖注入与自动装配 首先推荐狂神说的Spring讲义 1.Beans.xml作用 简而言之,我们通过在beans.xml中进行配置,将各种类交给spring来管理. 2.依赖注入 推荐狂神 ...

  7. Spring框架总结六---自动装配

    文章目录 自动装配 一.自动装配概念 1.手动装配 2.自动装配 i.根据类型(byType) ii.根据名称(byName) 二.使用注解标识组件 1.普通组件:@Component 2.持久化层组 ...

  8. Struts2与Spring集成中的自动装配策略

    http://www.blogjava.net/jeffma/archive/2010/11/30/339414.html 自动装配即bean之间的依赖关系无需手动配置. 1.    与自动装配有关的 ...

  9. 【Spring系列04】自动装配(Qualifier,Autowired,Resource讲解)

    这里写目录标题 一:Bean的自动装配 1.自动装配说明 2.测试环境搭建[方法一:在xml中显式配置] ++++++以下[方法三:隐式的bean发现机制和自动装配]+++++++ 3.byName[ ...

  10. Spring基于注解的自动装配

    Spring基于注解的自动装配 基于XML的自动装配是在配置文件的bean里设置autowire属性,有byType,byName的方式.而基于注解的自动装配同样是这样只不过我们直接在成员变量上直接标 ...

最新文章

  1. php if require,php echo()和print()、require()和include()函数区别说明
  2. 【Ubuntu】ubuntu webqq桌面版pywebqq
  3. NOKIA自己掌控的新的智能手机系统ASHA
  4. RealARM210 V3.2硬件版本 nand flash地址分配明细
  5. ZOJ3805Machine(二叉树左右子树变换)
  6. MUI组件:弹出层组件 - 案例篇
  7. 微信pc群发器,支持小程序、视频号、名片、图片、文字等
  8. Spring依赖注入的两种方式(根据实例详解)
  9. OPPO技术开放日第二期启动,聚焦碎片化场景下的流量探索
  10. 苹果新专利曝光,可通过GPS和视觉识别器来识别车辆
  11. python生活中可以应用到_学完Python可以应用到工作的哪些应用中?
  12. NSArray 的遍历
  13. 将Excel中的数据导入至sqlserver数据表
  14. 四川行无疆电商讲解拼多多电商产品销量如何清零
  15. 无人机油动发动机调试
  16. DPDK 网卡驱动学习
  17. topcoder入门
  18. 技术债务研究综述X4
  19. Quarkus Camel 入门学习
  20. 2019软科中国【计算机】专业大学排名

热门文章

  1. java怎么删除List中的指定元素
  2. 用unsigned char 表示字节
  3. 用SNMP实现对大型网络的轻松管理!
  4. bzoj1196 [HNOI2006]公路修建问题
  5. 解析 this.initialize.apply(this, arguments)
  6. 蓄电池容量和环境温度的关系
  7. ARM裸机开发环境搭建
  8. MySQL 8.0 新特性之统计直方图
  9. react源代码重点难点分析
  10. 初入react -01