一文解读:Spring Bean定义

开课吧开课吧锤锤2021-08-06 16:55

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

一文解读:SpringBean定义  

可以把SpringIoC容器看作是一个大工厂,Bean相当于工厂的产品,如果希望这个大工厂生产和管理Bean,则需要告诉容器需要哪些Bean,以及需要哪种方式装配Bean。  

Spring配置文件支持两种格式,即XML文件格式和Properties文件格式。  

Properties配置文件主要以key-value键值对的形式存在,只能赋值,不能进行其他操作,适用于简单的属性配置。  

XML配置文件是树形结构,相对于Properties文件来说更加灵活。XML配置文件结构清晰,但是内容比较繁琐,适用于大型复杂的项目。  

通常情况下,Spring的配置文件使用XML格式。XML配置文件的根元素是<beans>,该元素包含了多个子元素<bean>。每一个<bean>元素都定义了一个Bean,并描述了该Bean如何被装配到Spring容器中。  

例如,Beans.xml配置文件,代码如下所示:  

<?xml version="1.0" encoding="UTF-8"?>
<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-3.0.xsd">
    <bean id="helloWorld" class="net.biancheng.HelloWorld">
        <property name="message" value="Hello World!" />
    </bean>
</beans>

上述代码中,使用id属性定义了Bean,并使用class属性指定了Bean对应的类。  

<bean>元素中可以包含很多属性,其常用属性如下表所示。  

<bean>元素的常用属性  

 
属性名称 描述
id

Bean 的唯一标识符,Spring 容器对 Bean 的配置和管理都通过该属性完成。

id 的值必须以字母开始,可以使用字母、数字、下划线等符号。

name

name 属性中可以为 Bean 指定多个名称,每个名称之间用逗号或分号隔开。

Spring 容器可以通过 name 属性配置和管理容器中的 Bean。

class 该属性指定了 Bean 的具体实现类,它必须是一个完整的类名,即类的全限定名。
scope 

用于设定 Bean 实例的作用域,属性值可以为 singleton(单例)、

prototype(原型)、request、session 和 global Session。其默认值是 singleton

constructor-arg

<bean>元素的子元素,可以使用此元素传入构造参数进行实例化。

该元素的 index 属性指定构造参数的序号(从 0 开始),type 属性指定构造参数的类型

property

<bean>元素的子元素,用于调用 Bean 实例中的 setter 方法来属性赋值,

从而完成依赖注入。该元素的 name 属性用于指定 Bean 实例中相应的属性名

ref

<property> 和 <constructor-arg> 等元素的子元索,

该元素中的 bean 属性用于指定对某个 Bean 实例的引用

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 时有效

以上就是开课吧广场小编为大家整理发布的“一文解读:SpringBean定义”一文,更多Java教程相关内容尽在开课吧广场Java教程频道!  

一文解读:SpringBean定义

 

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享