创建对象之后如何体现对象之间的依赖?

Spring容器负责创建Bean和依赖注入,那么Spring是怎么将Bean装配在一起的呢?

Spring提供了三种方式装配机制

1.隐式的bean发现机制和自动装配

    

                              

图一图二,是两个组件与Config类同包

图三,Configuration注解表明Config类是一个配置类,ComponentScan注解表明自动扫描创建该类所在包及子包下的组件;

图四,使用SpringJUnit4ClassRunner,以便在测试开始的时候自动创建Spring的应用上下文。ContextConfiguration注解会告诉在Config类中加载应用上下文的配置

第一种方式使用了autowired注解,把扫描到合适的bean自动注入;如找不到组件或者找到多个组件报错,找不到组件可设置required不报错【autowired(required=false)】注入Null,但使用时可能会报错。

2.在JavaConfig中显式配置

去掉ComponentScan注解,这种方式是通过Config告诉Spring容器需要创建的Bean

2.1默认情况下,bean的ID与带有@Bean注解的方法名是一样的。你想为其设置成一个不同的名字的话,可以重命名该方法,也可以通过name属性指定一个不同的名字。

2.2通过构造器注入创建对象,创建People对象之前会先在容器中创建查找Talent对象

相当于

3.通过XML创建装配bean

  ....未完待明天续

转载于:https://www.cnblogs.com/luo-bo/p/10513808.html

Spring实战Day2相关推荐

  1. 【Spring实战】—— 14 传统的JDBC实现的DAO插入和读取

    从这篇开始学习Spring的JDBC,为了了解Spring对于JDBC的作用,先通过JDBC传统的流程,实现一个数据库的插入和读取. 从这篇你可以了解到: 1 传统的JDBC插入和读取的过程. 2 如 ...

  2. Spring实战(第3版)

    <Spring实战(第3版) > 基本信息 原书名:Spring in Actiong(third edition) 作者: (美)Craig Walls 译者: 耿渊 张卫滨 出版社:人 ...

  3. 《spring实战第四版》的读书笔记

    <spring实战第四版>的读书笔记 1 概述 <Spring实战第四版>描述了Spring4架构的设计,看完了以后,最大感觉是Spring的IOC与aop理念实在是太强大了, ...

  4. 《Spring实战》读书笔记--SpringMVC之forward与redirect

    <Spring实战>读书笔记--SpringMVC之forward与redirect 1.forward与redirect介绍 1.1 redirect 重定向,服务器收到请求后发送一个状 ...

  5. Spring实战6-利用Spring和JDBC访问数据库

    主要内容 定义Spring的数据访问支持 配置数据库资源 使用Spring提供的JDBC模板 写在前面:经过上一篇文章的学习,我们掌握了如何写web应用的控制器层,不过由于只定义了SpitterRep ...

  6. Spring实战——缓存

    缓存 提到缓存,你能想到什么?一级缓存,二级缓存,web缓存,redis-- 你所能想到的各种包罗万象存在的打着缓存旗号存在的各种技术或者实现,无非都是宣扬缓存技术的优势就是快,无需反复查询等. 当然 ...

  7. Spring实战-雇员薪资管理系统

    Spring实战-雇员薪资管理系统 基本概述 这里使用的是Spring2.5+Hibernate3.3+Struts1.3(SSH)框架,进行整合开发,通过该案例可以了解使用SHH框架进行开发的基本操 ...

  8. 【转】Nutz | Nutz项目整合Spring实战

    http://blog.csdn.net/evan_leung/article/details/54767143 Nutz项目整合Spring实战 前言 Github地址 背景 实现步骤 加入spri ...

  9. (转)Nutz | Nutz项目整合Spring实战

    http://blog.csdn.net/evan_leung/article/details/54767143 Nutz项目整合Spring实战 前言 Github地址 背景 实现步骤 加入spri ...

最新文章

  1. jquery学习手记(4)元素的选择与操作
  2. 一文教你快速上手PyFlink
  3. 写一个易于维护使用方便性能可靠的Hybrid框架(一)—— 思路构建
  4. js重新渲染div_前端工程师必备:从浏览器的渲染到性能优化
  5. 【2019牛客暑期多校训练营(第二场)- F】Partition problem(dfs,均摊时间优化)
  6. 广州驾校考试实际道路考试注意事项(图)
  7. [看书笔记]《深入java虚拟机》——java体系结构(二)
  8. 免杀需要的基本汇编知识
  9. python16进制字节序_Python-十六进制数据传递与接收
  10. javascript获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度
  11. 4000亿市值迈瑞医疗的虚火与真金
  12. Pigeon 工具类ExtensionLoader
  13. “细雨湿衣看不见,闲花落地听无声”---超强作文
  14. Android Studio入门级教程(详细)【小白必看】
  15. 9.2. switchport trunk encapsulation dot1q 提示 invaild input at^marker.
  16. 【NOIP 2015】斗地主
  17. winfrom 水晶报表制作
  18. FreeBSD安装中文字体和中文输入法
  19. Xilinx IP核AXI Memory Mapped to PCI Express使用
  20. SX1301基于MT7628的网关方案

热门文章

  1. linux文件编程(3)—— main函数传参、myCp(配置成环境变量)、修改配置文件、整数和结构体数组写到文件
  2. html 输入框防止自动记忆,网页输入框input填写内容自动记忆功能怎么去除
  3. html5 百度地图api文档,开发指南--百度地图JavaScript API大众版.doc
  4. 等待因该出现在while循环中,防止虚假唤醒
  5. System.out.println(Runtime.getRuntime().availableProcessors());获取cpu核数
  6. 程序人生:摆脱情绪低潮的10种方法
  7. 关于程序员的脑筋急转弯(附答案)
  8. DoNet 高效开发必备开发工具
  9. 面向对象和面向过程_程序员给你解释:面向对象和面向过程的区别,到底是怎么回事?...
  10. 计算机有关的文献检索题目,文献检索第二次计算机检索实习题目(2016.4.10).doc