多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 简介 在spring中,可以在`<bean>`元素的scope属性里设置bean的作用域 默认情况下,spring只为每个在IOC容器里声明的Bean创建唯一一个实例,整个IOC容器范围内都能共享该实例:所有后续的getBean()调用和bean引用都将返回这个唯一的bean实例.该作用域被称为singleton,它是所有bean的默认作用域 | 类别 | 说明 | | --- | --- | | singleton | 在springIOC容器中仅存在一个Bean实例,Bean以单例的方式存在(默认的scope) | | prototype | 每次调用getBean()时都会返回一个新的实例 | | request | 每次HTTP请求都会创建一个新的Bean,该作用域仅适用于webApplicationContext环境,bean对象request.setAttribute()存储到request域中 | | session | 同一个HTTP session共享一个Bean,不同的HTTP session使用不同的Bean.该作用域仅适用于webApplicationContext环境,bean对象session.setAttribute()存储到session域中 | | `global-session` | 作用于集群环境的会话范围(全局会话访问),当不是集群环境时就是session | # 生命周期 bean 对象无外乎是在以下两个时刻进行实例化的: 1. 调用 getBean() 方法时 2. Spring 容器启动时 ~~~ <bean name="user" class="com.spring.User" scope="singleton"> <property name="name" value="jelly" /> </bean> ~~~