Spring的Bean定义
以下内容引用自http://wiki.jikexueyuan.com/project/spring/bean-definition.html:
Bean定义
被称作bean的对象是构成应用程序的支柱也是由Spring IoC容器管理的。bean是一个被实例化,组装,并通过Spring IoC容器所管理的对象。这些bean是由用容器提供的配置元数据创建的。
bean定义包含称为配置元数据的信息,下述容器也需要知道配置元数据:
如何创建一个bean
bean的生命周期的详细信息
- bean的依赖关系
上述所有的配置元数据转换成一组构成每个bean定义的下列属性。
| 属性 | 描述 |
|---|---|
| class | 这个属性是强制性的,并且指定用来创建bean的bean类。 |
| name | 这个属性指定唯一的bean标识符。在基于XML的配置元数据中,你可以使用ID和/或name属性来指定bean标识符。 |
| scope | 这个属性指定由特定的bean定义创建的对象的作用域。 |
| constructor-arg | 它是用来注入依赖关系的。 |
| properties | 它是用来注入依赖关系的。 |
| autowiring mode | 它是用来注入依赖关系的。 |
| lazy-initialization mode | 延迟初始化的bean告诉IoC容器在它第一次被请求时,而不是在启动时去创建一个bean实例。 |
| initialization method | 在bean的所有必需的属性被容器设置之后,调用回调方法。 |
| destruction method | 当包含该bean的容器被销毁时,使用回调方法。 |
Spring配置元数据
Spring IoC容器完全由实际编写的配置元数据的格式解耦。有下面三个重要的方法把配置元数据提供给Spring容器:
基于XML的配置文件
基于注解的配置
- 基于Java的配置
以下为一个基于XML配置文件的例子,这个配置文件中有不同的bean定义,包括延迟初始化,初始化方法和销毁方法的:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 一个简单的bean定义 -->
<bean id = "..." class = "...">
<!-- 在这里配置这个bean的协作者 -->
</bean> <!-- 一个具有延迟初始化设置的bean定义 -->
<bean id = "..." class = "..." lazy-init = "true">
<!-- 在这里配置这个bean的协作者 -->
</bean> <!-- 一个具有初始化方法的bean定义 -->
<bean id = "..." class = "..." init-method = "...">
<!-- 在这里配置这个bean的协作者 -->
</bean> <!-- 一个具有销毁方法的bean定义 -->
<bean id = "..." class = "..." destroy-method = "...">
<!-- 在这里配置这个bean的协作者 -->
</bean> <!-- 在这里定义更多的bean --> </beans>
Spring的Bean定义的更多相关文章
- 品Spring:bean定义上梁山
认真阅读,收获满满,向智慧又迈进一步... 技术不枯燥,先来点闲聊 先说点好事高兴一下.前段时间看新闻说,我国正式的空间站建设已在进行当中.下半年,长征五号B运载火箭将在海南文昌航天发射场择机将空间站 ...
- Spring中 bean定义的parent属性机制的实现分析
在XML中配置bean元素的时候,我们常常要用到parent属性,这个用起来很方便就可以让一个bean获得parent的所有属性 在spring中,这种机制是如何实现的? 对于这种情况 tra ...
- Spring XML Bean 定义的加载和注册
前言 本篇文章主要介绍 Spring IoC 容器怎么加载 bean 的定义元信息. 下图是一个大致的流程图: 第一次画图,画的有点烂.
- spring源码学习之路---IOC容器初始化要义之bean定义载入(五)
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 最近工作很忙,时间不多,研究 ...
- Spring技术内幕_IOC容器载入Bean定义资源文件
转自:http://blog.csdn.net/chjttony/article/details/6259723 1.当spring的IoC容器将Bean定义的资源文件封装为Spring的Resour ...
- 品Spring:实现bean定义时采用的“先进生产力”
前景回顾 当我们把写好的业务代码交给Spring之后,Spring都会做些什么呢? 仔细想象一下,再稍微抽象一下,Spring所做的几乎全部都是: “bean的实例化,bean的依赖装配,bean的初 ...
- 品Spring:负责bean定义注册的两个“排头兵”
别看Spring现在玩的这么花,其实它的“筹码”就两个,“容器”和“bean定义”. 只有先把bean定义注册到容器里,后续的一切可能才有可能成为可能. 所以在进阶的路上如果要想走的顺畅些,彻底搞清楚 ...
- 品Spring:SpringBoot轻松取胜bean定义注册的“第一阶段”
上一篇文章强调了bean定义注册占Spring应用的半壁江山.而且详细介绍了两个重量级的注册bean定义的类. 今天就以SpringBoot为例,来看看整个SpringBoot应用的bean定义是如何 ...
- 品Spring:SpringBoot发起bean定义注册的“二次攻坚战”
上一篇文章整体非常轻松,因为在容器启动前,只注册了一个bean定义,就是SpringBoot的主类. OK,今天接着从容器的启动入手,找出剩余所有的bean定义的注册过程. 具体细节肯定会颇为复杂,同 ...
随机推荐
- ios 团购信息客户端demo(三)
接上二篇的内容,今天我们就来介绍一下如何将解析出来的数据放入AQGridView中显示出来,因为我们的工程中已经将AQGridView导入了,所以我们在KKFirstViewController中直接 ...
- ios之UISlider
初始化一个Slider UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(0, 400,320 , 20)]; 滑块是一个标 ...
- Life is short.,You need Python
真棒Python https://awesome-python.com/ 精选的Python框架,库,软件和资源的精选列表. 灵感来自awesome-php. 真棒Python 管理员面板 算法和设 ...
- jenkins学习笔记(一)
windows下安装jenkins步骤 1.下载 官网路径:https://jenkins.io/ 2.安装 直接双击安装程序即可 centos7下安装命令: wget -O /etc/yum.rep ...
- js事件,操作页面文档,计算后样式,数据类型
js:运行在浏览器的脚本语言 js引入 1.行间式:存在于行间事件中 <div id="div" onclick="this.style.color="r ...
- 牛客网暑期ACM多校训练营(第五场) E room(最小费用最大流 , 最小权二分图匹配模板)
链接: https://www.nowcoder.com/acm/contest/143/E 题意: 给定n个宿舍的新安排, 每个宿舍都有4个人, 问要至少有多少个人换位才能变成新安排. 可以建一个二 ...
- js-dom-EventUtil
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- angular-websocket.js 使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Silverlight客户端加载DWG图纸方案
前段时间一直再研究怎么才能在Silverlight客户端加载 DWG图纸,ArcGIS API For Silverlight中可以加载Shp文件,但是不能加载DWG,最后想出了一个方法步骤如下: 1 ...
- .NET重构(四):窗体继承+模板方法,完美实现组合查询
导读:在机房重构中,有好些个查询都是大同小异,最为显著的就是组合查询了.怎样给自己省事儿,相同的东西能不能重复利用,就成了一个现实的问题.第一遍做机房的时候,使用的更多的是:复制+粘贴.学习了设计模式 ...