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定义的注册过程. 具体细节肯定会颇为复杂,同 ...
随机推荐
- Linux下关于/tmp目录的清理规则
本文将介绍Linux下/tmp目录的清理规则,rhel6和rhel7将以完全不同的两种方式进行清理. RHEL6 tmpwatch命令 tmpwatch 是专门用于解决“删除 xxx天没有被访问/修改 ...
- inotify+rsync sersync+rsync实时同步服务
中小型网站搭建-数据实时的复制-inotify/sersync inotify是一种强大的,细粒度的.异步的文件系统事件监控机制(软件),linux内核从2.6.13起,加入inotify支持,通过i ...
- python爬虫基础07-selenium大全1/8-安装和简单使用
Selenium笔记(1)安装和简单使用 本文集链接:https://www.jianshu.com/nb/25338984 简介 Selenium是一个用于Web应用程序测试的工具. Seleniu ...
- python爬虫基础05-beautifulsoup
HTML解析库BeautifulSoup4 本文链接:https://www.jianshu.com/p/e9255c446a77 BeautifulSoup 是一个可以从HTML或XML文件中提取数 ...
- Python 基本数据类型 (一) - 整数
帮助文档网址: https://docs.python.org/3.7/tutorial/introduction.html 待补充
- python中实现格式化输出 %用法
当我们在python中需要打印出特定格式的内容时可以用到这个方法,方法介绍如下: 例如我们现在要收集用户的一些个人信息,这时候我们的代码如下: name=input("name: " ...
- Oracle排错总结
一.Oracle常规恢复之不安全恢复 http://www.cnblogs.com/jyzhao/p/4723994.html#2.11
- WCF全局异常处理
在用wcf做为单纯的服务端的时候,发生错误是常有的事情,特别是在调用其他系统提供的接口的时候,发生的一些错误总是让人摸不着头脑,严重影响了错误的定位.做.net web开发的时候,我们可以在Globa ...
- JSON Extractor/jp@gc - JSON Path Extractor 举例
测试描述 使用json返回结果做校验 测试步骤 1.配置http请求 2.根据结果树返回的json,取值 {"status_code":200,"message" ...
- 大数据学习——sqoop导出数据
把数据从hadoop导出到关系型数据库 将数据从HDFS导出到RDBMS数据库 导出前,目标表必须存在于目标数据库中. u 默认操作是从将文件中的数据使用INSERT语句插入到表中 u 更新模式下 ...