Spring Bean作用域简介说明

2023-11-18

转自:

Spring Bean作用域简介说明

Bean作用域简介

    Bean作用域指一个Bean是否为单例模式,还是每次访问新实例,或一个Session一个新实例等方式,
那么Bean作用域有哪几种呢?
下文将一一道来

作用域     描述
singleton     在spring IoC容器仅存在一个Bean实例,Bean以单例方式存在,默认值
prototype     每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行newXxxBean()
request     每次HTTP请求都会创建一个新的Bean,该作用域仅适用于WebApplicationContext环境
session     同一个HTTP Session共享一个Bean,不同Session使用不同的Bean,仅适用于WebApplicationContext环境
global-session     一般用于Portlet应用环境,该运用域仅适用于WebApplicationContext环境

例:

 
package com.java265;
public class HelloWorld {
    private String message;
    public void setMessage(String message) {
        this.message = message;
    }
    public void getMessage() {
        System.out.println("message : " + message);
    }
}
 

package com.java265;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
        HelloWorld objA = (HelloWorld) context.getBean("helloWorld");
        objA.setMessage("对象A");
        objA.getMessage();
        HelloWorld objB = (HelloWorld) context.getBean("helloWorld");
        objB.getMessage();
    }
}

---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="com.java265.HelloWorld" scope="singleton"/>
      
</beans>

---输出信息如下所示:
message : 对象A
message : 对象A


----在bean.xml中将scope属性修改为prototype 
    <bean class="..." id="..." scope="prototype">
例2:修改配置文件 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="com.java265.HelloWorld" scope="prototype"/>
      
</beans>


运行结果如下。
message : 对象A
message : null
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Bean作用域简介说明 的相关文章

随机推荐

  • 21 单例模式

    1 定义 单例模式 保证一个类仅有一个实例 并提供一个访问它的全局访问点 单例模式的使用场景 只要一个实例 例如一个Web页面上的计数器 可以不用把每次刷新都记录到数据中 使用单例模式保持计数器的值 并确保是线程安全的 创建一个对象需要消耗
  • 设计模式概述

    设计模式的重要性 以实际工作举例 给用户开 开发完成后客户增加新的功能 例如原本程序适配两个产品 增加第三个产品 程序可扩展性 程序开发完成后的后续维护 规范性 可读性 总结 高内聚 低耦合 可维护性 可扩展性 类与类之间的关系 依赖 类A
  • 基于Qt的Sapera LT开发

    基于Qt的Sapera LT开发 基于Qt来开发Sapera LT 需要经过以下几个步骤 1 在建立的Qt工程添加Sapera LT的相关路径 1 右键工程 Properties 2 Configuration Properties C C
  • echarts x轴的日期显示为年月日

    xAxis type time min new Date 开始时间 max new Date 结束时间 axisLabel interale 0 rotate 40 设置日期显示样式 倾斜度 formatter function value
  • linux下查看U盘文件

    1 查看U盘是哪个设备 shell gt sudo fdisk l 2 挂载到一个目录下 新建一个目录 shell gt cd mnt shell gt sudo mkdir usb 将u盘挂载到该目录下 shell gt sudo mou
  • vs2017 15.5.x dll调试不成功问题

    配置 Unity5 5 5f1 vs2017 问题 更新到vs2017 15 5 0之后 项目中用到的dll调试断点进不去了 之后更新到15 5 1 依然进不去 现象 Unity工程下生成的dll文件只有dll pdb没有dll mdb文件
  • SEO利器:使用Python爬虫实现竞争对手关键词分析

    在当今的数字时代 搜索引擎优化 SEO 是许多网站主和营销人员追求的目标 为了提高自己网站在搜索结果中的排名 并吸引更多有针对性的流量 我们需要深入了解竞争对手以及他们所使用的关键词策略 本篇文章将向您介绍一种强大而有效的工具 Python
  • docker搭建私有npm仓库

    一 dockerhub搜索verdaccio verdaccio镜像 二 docker拉取镜像 docker pull verdaccio verdaccio latest 三 查看镜像 docker image ls 四 运行容器 doc
  • 三维GIS工程师进阶训练营

    本文档只用作个人学习过程记录 部分基础内容不会详细记录 三维GIS工程师进阶训练营 一 三维GIS项目开发概述 1 三维GIS关键技术 2 行业应用 二 空间数据获取与优化处理方法 2 1 倾斜摄影三维模型数据的处理与优化 1 倾斜摄影三维
  • R语言 数据处理(一)

    数据合并 提取及降维处理 install packages dplyr 数据处理包dplyr library dplyr name1 lt c Bob Mary Jane Kim name2 lt c Bob Mary Kim Jane w
  • Animate.css 动画库介绍

    一个漂亮炫酷的网页离不开动画效果的点缀 现在也有很多动画库可供选择 这里我来介绍一个简单好用的动画库Animate css animate css在线效果用一个在线网页演示了所有动画效果 我们只需要在下拉列表中选择一个效果名字 即可查看它的
  • centos7 安装 docker

    文章目录 使用阿里云镜像源安装docker ce 检查内核版本 Docker requires a 64 bit OS and version 3 10 or higher of the Linux kernel uname r 更新yum
  • SSM异常:No qualifying bean of type `CompanyDao` available expected at least 1 bean which qualifies

    1 边写代码边做测试 由于采用聚合架构及Maven的方式创建项目 一个父项目 Project 会有多个子模块 Module 每个子模块都会在resources目录下创建spring文件夹 用于存放spring相应的配置文件 于是测试时遇到了
  • TensorFlow——鸢尾花分类

    准备数据 数据集读入 导入所需模块 import tensorflow as tf from sklearn import datasets from matplotlib import pyplot as plt import numpy
  • 【计算机网络】计算机网络基础

    计算机是人类社会不可或缺的工具 而单独的一台计算机的功能也是有限的 计算机需要和其它的设备相互连接通信形成的计算机网络才能对人类发展带来巨大的影响 目录 计算机网络 通信协议 网络结构 网络边缘 接入网 网络核心 时延和吞吐量 时延 吞吐量
  • wchar_t char wstring string 项目转换

    wchar t char wstring string 项目转换 1 wchart t转wstring wchar t tmpRuleStr 10 0 wstring m tmpRuleStr wstring tmpRuleStr 2 ws
  • Mac安装python3

    可以在命令行中输入 brew install python3 但是出现了error 如下所示 tar Error opening archive Failed to open Users my Library Caches Homebrew
  • springBoot自动装载原理

    springBoot自动装载原理 启动类的核心组合注解 SpringBootApplication 点进去看看 组成 SpringBootApplication注解的三个核心注解 SpringBootConfiguration 继承自 Co
  • 【MySQL】数据库高级查询:修改表、DML语句、DQL语句

    修改表 1 修改表名 ALTER TABLE 旧表名 RENAME TO 新表名 TO为可选参数 使用与否不影响结果 2 添加字段 ALTER TABLE 表名 ADD 字段名 数据类型 属性 3 修改字段 ALTER TABLE 表名 C
  • Spring Bean作用域简介说明

    转自 Spring Bean作用域简介说明 Bean作用域简介 Bean作用域指一个Bean是否为单例模式 还是每次访问新实例 或一个Session一个新实例等方式 那么Bean作用域有哪几种呢 下文将一一道来 作用域 描述 singlet