Spring下IOC容器和DI(依赖注入) @Bean及@Autowired自动装配

bean是什么

bean在spring中可以理解为一个对象。理解这个对象需要换一种角度,即可将spring看做一门编程语言,@Bean是spring语言声明对象的标识。

spring启动过程中会自动扫描注解,当遇到能产生Bean的注解(见下方列表)后,会将注解的类自动实例化(自动扫描及实例化只进行一次),之后将这个类的实例放到spring框架的容器中,当需要使用时(自动装配)会从容器中调用这个实例。

调用加了注解的类A且该类A中也有自动装配的bean时,不能使用new A()的方式,否则A中自动装配的bean都会失效,需要使用 '@Autowired A a;'才行。

能产生Bean的注解有:

    @Component
@Repository
@Controller
@Service
@Configration
前五种只能对类使用。
@Bean (特殊,可对方法注解。@Bean注解需在上方五个注解的类中才生效,例如下:)

自动装配是什么?

创建应用对象之间协作关系的行为称为装配。也就是说当一个类A的属性中声明了另一个类B的对象,A实例化时,需要为A的属性B进行实例化。这就是装配。

自动转配会自动将对象属性实例化。

在A类中声明属性B时加上注解@Autowired,A实例化时spring会自动从容器中调动B的实例。为了让spring能从容器中调用B的实例,需在B的类声明上能产生Bean的注解。

自动装配的注解有:

@Autowired (通过类装配,一般用这个)

@Resource (通过自命名装配)

@Autowired自动装配有两种方式:
一种是重写set方法,可对对象自定义操

[转载]Spring下IOC容器和DI(依赖注入) @Bean及@Autowired的更多相关文章

  1. Spring:Spring-IOC容器、DI依赖注入简介

    Spring容器到底是什么? 从概念上讲:Spring 容器是 Spring 框架的核心,是用来管理对象的.容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁. 从具象化 ...

  2. Spring 04: IOC控制反转 + DI依赖注入

    Spring中的IOC 一种思想,两种实现方式 IOC (Inversion of Control):控制反转,是一种概念和思想,指由Spring容器完成对象创建和依赖注入 核心业务:(a)对象的创建 ...

  3. Spring的IOC控制反转和依赖注入-重点-spring核心之一

    IoC:Inverse of Control(控制反转): 读作"反转控制",更好理解,不是什么技术,而是一种设计思想,好比于MVC.就是将原本在程序中手动创建对象的控制权,交由S ...

  4. Spring:(二)DI依赖注入方式

    DI 依赖注入 DI(Dependency Injection)依赖注入,说简单一点就将类里面的属性在创建类的过程中给属性赋值,即将对象依赖属性(简单值,集合,对象)通过配置设值给该对象. 属性注入的 ...

  5. laravel服务容器(IOC控制反转,DI依赖注入),服务提供者,门脸模式

    laravel的核心思想: 服务容器: 容器:就是装东西的,laravel就是一个个的对象 放入:叫绑定 拿出:解析 使用容器的目的:这里面讲到的是IOC控制反转,主要是靠第三方来处理具体依赖关系的解 ...

  6. Spring框架IOC容器和AOP解析

    主要分析点: 一.Spring开源框架的简介  二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面向切面编程(AOP)和事务管理配置  一.S ...

  7. Spring框架IOC容器和AOP解析 非常 有用

    Spring框架IOC容器和AOP解析   主要分析点: 一.Spring开源框架的简介  二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面 ...

  8. spring之:XmlWebApplicationContext作为Spring Web应用的IoC容器,实例化和加载Bean的过程

    它既是 DispatcherServlet 的 (WebApplicationContext)默认策略,又是 ContextLoaderListener 创建 root WebApplicationC ...

  9. spring学习笔记三:Component注解(把POJO类实例化到spring的IOC容器中)

    Component注解:把普通的POJO 类实例化到spring的IOC容器中,就是定义成<bean id="" class=""> 项目目录树: ...

随机推荐

  1. enviroment linux jdk and git and maven

    #java_home export JAVA_HOME=/usr/local/java/jdk1.8.0_211 export JRE_HOME=$JAVA_HOME/jre export CLASS ...

  2. 3_5 生成元(UVa1583)

    如果x加上x的各个数字之和得到y,就说x是y的生成元.给出n(1<=n<=100000),求最小生成元.无解输出0.例如,n=216,121,2005时的解分别为198,0,1979. 样 ...

  3. Robot Framework 使用【1】-- 基于Python3.7 + RIDE 最新版本搭建

    前言 Robot Framework作为公司能快速落地实现UI自动化测试的一款框架,同时也非常适合刚入门自动化测试的朋友们去快速学习自动化,笔者计划通过从搭建逐步到完成自动化测试的过程来整体描述它的使 ...

  4. 02-11Android学习进度报告十一

    今天我学习了BaseAdapter优化的知识,主要是View方面的优化. 首先是复用复用ConvertView 代码示例: @Override public View getView(int posi ...

  5. HD Tune检查硬盘各参数的含义

    01 =Read Error Rate / (底层)数据读取错误率指从磁盘表面读取数据时发生的硬件读取错误的比率,Raw值对于不同的厂商有着不同的体系,单纯看做1个十进制数字是没有任何意义的.以上为W ...

  6. Sqoop 一点通

    sqoop 是什么? sqoop 主要用于异构数据: 1. 将数据从hadoop,hive 导入.导出到关系型数据库mysql 等; 2. 将关系型数据库 mysql 中数据导入.导出到 hadoop ...

  7. ThinkPHP5 动态生成图片缩略图

    需求场景 不同终端(PC端.手机端.平板),不同界面(列表页.详情页),对图片大小的要求不一样, 如果所有场景下都使用同一尺寸的图片,势必对会网络带宽及服务器性能造成一定的影响,由此需要服务器端能够根 ...

  8. Weka算法算法翻译(部分)

    目录 Weka算法翻译(部分) 1. 属性选择算法(select attributes) 1.1 属性评估方法 1.2 搜索方法 2. 分类算法 2.1 贝叶斯算法 2.2 Functions 2.3 ...

  9. Plastic Sprayers Manufacturer - Spray Principle, Spray Note

    The     Plastic Sprayers Manufacturer    stated that the spray is artificial fogging. Simply put, th ...

  10. keil遇到hardfault时原因的查找

    当硬件仿真遇到hardfault会进入响应的中断软件陷阱中void HardFault_Handler(void),此时通过view-registers中的 1 如果STACK=MSP,则查看SP的堆 ...