Spring Bean定义

举报
CoderX 发表于 2022/04/06 13:32:47 2022/04/06
【摘要】 Bean​ 由Spring IoC容器管理的对象称为Bean,Bean根据Spring配置文件中的信息创建。​ 把Spring IoC容器看做一个工厂,Bean是工厂的产品.如果希望工厂生产和管理Bean,就要告诉容器需要哪些Bean,以哪种方式装配。​ Spring配置文件支持两种格式:XML文件格式和Properties文件格式properties配置...

Bean

​ 由Spring IoC容器管理的对象称为Bean,Bean根据Spring配置文件中的信息创建。

​ 把Spring IoC容器看做一个工厂,Bean是工厂的产品.如果希望工厂生产和管理Bean,就要告诉容器需要哪些Bean,以哪种方式装配。

​ Spring配置文件支持两种格式:XML文件格式和Properties文件格式

  • properties配置文件主要以key-value键值对形式存在,只能赋值,不能进行其他操作,适用于简单的属性配置。
  • XML配置文件采用树形结构,结构清晰,相较于Properties文件更加灵活,但是XML配置比较繁琐,适用于大型的复杂的项目

​ 通常情况下,Spring的配置文件都是使用XML格式的。XML配置文件的根元素是<beans>。每一个<bean>元素都应一乐一个Bean,并描述了改Bean是如何被装配到Spring容器中的。

<bean>元素中可以包含多个属性或子元素:

属性名称 描述
id Bean 的唯一标识符,Spring IoC 容器对 Bean 的配置和管理都通过该属性完成。id 的值必须以字母开始,可以使用字母、数字、 下划线等符号。
name 该属性表示 Bean 的名称,我们可以通过 name 属性为同一个 Bean 同时指定多个名称,每个名称之间用逗号或分号隔开。Spring 容器可以通过 name 属性配置和管理容器中的 Bean。
class 该属性指定了 Bean 的具体实现类,它必须是一个完整的类名,即类的全限定名。
scope 表示 Bean 的作用域,属性值可以为 singleton(单例)、prototype(原型)、request、session 和 global Session。默认值是 singleton。
constructor-arg <bean> 元素的子元素,我们可以通过该元素,将构造参数传入,以实现 Bean 的实例化。该元素的 index 属性指定构造参数的序号(从 0 开始),type 属性指定构造参数的类型。
property <bean>元素的子元素,用于调用 Bean 实例中的 setter 方法对属性进行赋值,从而完成属性的注入。该元素的 name 属性用于指定 Bean 实例中相应的属性名。
ref <property> 和 <constructor-arg> 等元素的子元索,用于指定对某个 Bean 实例的引用,即 <bean> 元素中的 id 或 name 属性。
value <property> 和 <constractor-arg> 等元素的子元素,用于直接指定一个常量值。
list 用于封装 List 或数组类型的属性注入。
set 用于封装 Set 类型的属性注入。
map 用于封装 Map 类型的属性注入。
entry <map> 元素的子元素,用于设置一个键值对。其 key 属性指定字符串类型的键值,ref 或 value 子元素指定其值。
init-method 容器加载 Bean 时调用该方法,类似于 Servlet 中的 init() 方法
destroy-method 容器删除 Bean 时调用该方法,类似于 Servlet 中的 destroy() 方法。该方法只在 scope=singleton 时有效
lazy-init 懒加载,值为 true,容器在首次请求时才会创建 Bean 实例;值为 false,容器在启动时创建 Bean 实例。该方法只在 scope=singleton 时有效
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。