Bean对象的作用域及生命周期

1.Bean对象的作用域

Bean对象在spring容器中,可以通过scope属性来定义Bean元素的作用域,singleton(单例:这个作用域标识的对象具有全局唯一性)

prototype(多例:这个作用域标识是指在获取对象的时候都会创建新的对象)

2.Bean对象的生命周期

Bean对象的生命周期是指在spring框架中对Bean对象的创建,初始化,服务(指对Bean对象的使用),及销毁

在Bean元素的配置中

示例:

  <bean id="helloService"

            class="beans.HelloService"

            scope="prototype"

            init-method="init"//初始化方法

            destroy-method="destory"/>//销毁方法

3.Bean对象的延迟加载

 在spring框架的应用中,容器初始化时,默认会构建所有由spring管理的Bean对象,而一些不常用的对象在加载时会占用

一部分资源,造成资源浪费,由此spring提供了Bean对象的延迟加载机制,来提高系统对资源的高效使用

spring框架在配置文件中<BeanS>元素中配置defult- lazy-init属性(全局延迟加载)或在spring所管理的Bean对象的<Bean>元素中

加入lazy-init属性(局部延迟加载:在加载时,此属性的优先级高)

示例:

局部延迟加载

<bean id="helloService"

            class="beans.HelloService"

            scope="singleton"

            lazy-init="true"/>

全局加载

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:util="http://www.springframework.org/schema/util" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
default-lazy-init="true"

原文地址:https://www.cnblogs.com/rui-320/p/9896293.html