java spring scope_java – Spring和scope属性

2023-11-12

我在Spring学习中遇到问题,需要一些帮助.

我正在学习bean的原型范围,这基本上意味着每次有人或其他bean需要这个bean时,Spring会创建一个新bean而不使用相同的bean.

所以我尝试了这段代码,假设我有这个Product类:

public class Product {

private String categoryOfProduct;

private String name;

private String brand;

private double price;

public String getCategoryOfProduct() {

return categoryOfProduct;

}

public void setCategoryOfProduct(String categoryOfProduct) {

this.categoryOfProduct = categoryOfProduct;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getBrand() {

return brand;

}

public void setBrand(String brand) {

this.brand = brand;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

}

这里没什么特别的,一些Strings,一个Int和getter and setters.

然后我创建了这个上下文文件:

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-2.0.xsd">

然后我试着玩,看看我对原型范围的理解是否正确,这个类:

package com.springDiscovery.org.menu;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.springDiscovery.org.product.Product;

public class menu {

public static void main(String[] args)

{

ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");

Product product1 = (Product) context.getBean("product");

Product product2 = (Product) context.getBean("product");

System.out.println(product1.getPrice());

System.out.println("Let's change the price of this incredible game : ");

product1.setPrice(80);

System.out.println("Price for product1 object");

System.out.println(product1.getPrice());

System.out.println("Price Product 2 : ");

System.out.println(product2.getPrice());

}

}

令我惊讶的是,答案是:

70.0

Let's change the price of this incredible game :

Price for product1 object

80.0

Price Product 2 :

80.0

因此,当我更新了product1对象的值时,它似乎也已经更新了产品2.在我看来这是一种奇怪的行为,不是吗?

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

java spring scope_java – Spring和scope属性 的相关文章

  • 自定义类型-结构体

    注 本文为C语言初阶内容 目录 1 结构体 1 1结构体的基础知识 声明和自引用 1 2结构体变量的定义和初始化 1 3结构体内存对齐和修改默认对齐数 1 4结构体传参 1 结构体 1 1结构体的基础知识 声明 初始化和自引用 结构体是一些
  • js实现高德地图实现科技感3d建筑模型显示示例

  • java创建数组的方式_Java创建数组的几种方式总结

    1 一维数组的声明方式 type arrayName 或 type arrayName 附 推荐使用第一种格式 因为第一种格式具有更好的可读性 表示type 是一种引用类型 数组 而不是type类型 建议不要使用第二种方式 下面是典型的声明
  • 如何从Process维度评估芯片面积

    如何从Process维度评估芯片面积 文章右侧广告为官方硬广告 与吾爱IC社区无关 用户勿点 点击进去后出现任何损失与社区无关 最近在小编知识星球上有不少星友问到工艺 Metal Stack 的相关问题 今天小编将从最基础的 Metal S
  • R语言中的t分布函数:学生t分布实践

    R语言中的t分布函数 学生t分布实践 学生t分布是统计学中常用的概率分布之一 在数据分析和假设检验中具有重要的应用 本文将介绍如何在R语言中使用学生t分布函数进行实践 并提供相应的源代码 首先 我们需要了解学生t分布的基本特性和应用场景 学
  • 华为OD机试 - 五子棋迷(Java)

    题目描述 张兵和王武是五子棋迷 工作之余经常切磋棋艺 这不 这会儿又下起来了 走了一会儿 轮张兵了 对着一条线思考起来了 这条线上的棋子分布如下 用数组表示 1 0 1 1 1 0 1 0 1 1 棋了分布说明 1代表白子 0代表空位 1
  • 华为OD机试 - 比较两个版本号的大小(Java )

    题目描述 输入两个版本号 version1 和 version2 每个版本号由多个子版本号组成 子版本号之间由 隔开 由大小写字母 数字组成 并且至少有一个字符 按从左到右的顺序比较子版本号 比较规则如下 子版本号前面的0不参与比较 比如
  • 利用强化学习进行股票操作实战(四)

    本次实战代码仍是在之前基础上进行了一些修改 之前只在一支股票上进行训练 这次我将模型放在多支股票上训练 并在多支股票上进行了测试 对于多支股票的训练策略 没有参考过别人的训练方案 做这个的比较少 我按自己的理解去训练 每一轮训练 都将每支股
  • 芯片面积估计方法

    一 概念 芯片面积的主要涵盖部分分为三部分 IO 芯片的信号及电源pad等 Standard cell 实现芯片的功能逻辑 Macro block 第三方IP PLL DAC POR Memory etc 芯片面积估计就是通过目标工艺的库信
  • Python:使用 print 打印“Hello World!”以及其它字符内容

    哈喽 大家好 我是wangzirui32 这是我的第一篇博文 发现内容有误还请多多提出 谢谢 今天 我们将使用Python的print 来帮助我们让程序输出指定内容 如果你的Python版本是3 x print 将作为一个Python内置函
  • 第五周总结&实验报告三

    实验三 String类的应用 实验目的 掌握类String类的使用 学会使用JDK帮助文档 实验内容 1 已知字符串 this is a test of java 按要求执行以下操作 要求源代码 结果截图 1 统计该字符串中字母s出现的次数
  • 全国计算机等级考试题库二级C操作题100套(第79套)

    第79套 给定程序中 函数fun的功能是 求ss所指字符串数组中长度最短的字符串所在的行下标 作为函数值返回 并把其串长放在形参n所指变量中 ss所指字符串数组中共有M个字符串 且串长
  • js 查找字符串中指定字符 模糊查询 不区分大小写

    js 查找特定字符 模糊查询 不区分大小写 var str hello world hello coder 查找 HELLO 是否存在 找不到返回null var reg new RegExp HELLO i var isHas str m
  • Opencv-C++笔记 (12) : opencv-仿射变化

    文章目录 一 概述 二 GetRotationMatrix2D 三 warpAffine 一 概述 介绍完图像的缩放和翻转后 接下来将要介绍图像的旋转 但是在OpenCV 4中并没有专门用于图像旋转的函数 而是通过图像的仿射变换实现图像的旋
  • Python笔记:在Pandas中处理NaN值

    关于NaN值 在能够使用大型数据集训练学习算法之前 我们通常需要先清理数据 也就是说 我们需要通过某个方法检测并更正数据中的错误 任何给定数据集可能会出现各种糟糕的数据 例如离群值或不正确的值 但是我们几乎始终会遇到的糟糕数据类型是缺少值
  • vue element plus对话框第二次点击时 选择器不显示

    第一次点击时下拉框出现正常 关闭窗口后再次进入 选择器的下拉框不会出现 可给选择器设置属性 teleported false
  • AutoHotkey中的变量名 全局与局部冲突问题 - double-ref 双重引用

    文章目录 test 测试脚本 AutoHotkey中 全局变量与局部变量的作用域要缕清 已知一个 变量名foo 被一个全局变量 和 一个函数中的局部变量 使用 在该函数中 foo默认是局部变量 直接使用foo 其内容为空 双重解引用的变量
  • C++语言导学 第三章 模块化 - 3.4 名字空间

    C 语言导学 第三章 模块化 3 4 名字空间 3 4 名字空间 3 4 名字空间 除了函数 类和枚举之外 C 还提供了一种称为名字空间 namespace 的机制 用来表达某些声明属于一个整体以及它们的名字不会与其他名字冲突 例如 我希望
  • nodejs开启局域网广播获取ip通信

    bonjour 纯JavaScript中的Bonjour Zeroconf协议实现 使用多播DNS在本地网络上发布服务或发现现有服务 安装 npm install bonjour 使用方法 局域网A主机 import bonjour fro

随机推荐

  • _cdecl、_stdcall和_fastcall的区别

    概述 在windows开发环境中有三种觉的调用协议 分别为 cdecl C调用 stdcall 标准调用 fastcall 快速调用 三种调用方式有参数传递和栈帧恢复的方式有所不同 本文在结合汇编代码简要说明一下有三种调用方式的区别 环境
  • 解决警告——warning C4018: “<”: 有符号/无符号不匹配

    今天遇到这个问题 虽然不影响程序运行 但作为完美主义者 有警告总感觉不舒服 所以就查了一下解决方法 出错代码 for int j 0 j
  • centos下mysql 看不到mysql数据库(密码无法更改)

    1 这可能是因为mysql数据库的user表里 存在用户名为空的账户即匿名账户 导致登录的时候是虽然用的是root 但实际是匿名登录的 2 解决方案 2 1 关闭mysql service mysqld stop 2 2 屏蔽权限 mysq
  • verilog中给变量指定的位赋值

    reg 15 0 Data reg 3 0 i reg 1 0 data r begin Data i i 1 lt data r end 此类赋值是错误的 我自己修改了语句 如下 begin Data i lt data r 1 Data
  • ELK 日志分析搭建

    目录 一 ELK概述 1 1 概述 1 1 1 Elasticsearch概述 1 1 2 Logstash概述 1 1 3 kibana概述 1 2 ELK解决处理的事务 1 3 ELK优点 二 ELK 搭建操作 2 1 实验配置环境 2
  • Android Studio 打正式包

    第一步 第二步 第三步 第四步 第五步
  • v3

    hfd gd size 127152 size data 785449D1D343094895706D2DB2745030C466BEDCB9A26FC112F8C23E67BAF657 A5E4B40F93ADFDEBECBC0BB83F
  • JAVA设计模式(二)工厂模式与观察者模式

    工厂模式 工厂模式顾名思义则是类似于一个工厂制造产品的模式 如富士康需要制造自己的产品 而同类产品有多种 如手机有各个品牌和型号一样 明白了工厂模式的含义 我们来想想这个模式具体是怎么回事 首先需要的是一个工厂于是就需要一个Factory类
  • 【JavaWeb】HTML

    HTML 1 HTML概念 1 1 超文本 1 2 标记语言 2 HTML的入门程序 3 HTML语法规则 4 使用idea创建StaticWeb工程 5 HTML的各个标签的使用 5 1标题标签 5 2段落标签 5 3换行标签 5 4无序
  • mybatis代码自动生成器,可实现entity、mapper、service层代码生成

    mybatis对实体类的操作基本重复 公司的框架又已经定型 只能自己写一个代码自动生成器来减轻工作量 这里的实体类属性来自数据库中的表的列 可以根据需要自由更改 package oamanager entity import com bao
  • True Liars 【POJ - 1417】【种类并查集+0-1背包】

    题目链接 题目想要知道有P个好人 说真话的人 和Q个坏人 说假话的人 并且有N条信息 代表A说B是好人 yes 坏人 no 那么 在保证答案唯一的情况下输出这P个好人 并且最后的时候输出 end 否则 输出 no 坑点 答案唯一指的是最后你
  • python:冒泡排序(Bubble Sort)超详细教程!

    关于排序 真的非常的重要 数据可以从小到大排序 也可以从大到小排序 这样对于一个有序的数据 我们处理起来就很方便 这对于我们的工作帮助是很大的 那么你拿到一组无序的数据 你将要如何去处理它呢 冒泡排序就是从一个可迭代容器里 用某一索引去和它
  • 经销商订单系统,搭建中的功能介绍(感想)

    一 关于需求方对订货系统的解释 经销商订单系统 也可以叫做企业订货软件 企业订单软件 这是需求商说的 这套系统甲方说是属于企业内部系统 并不属于商城范畴 属于是企业内部单机的订单管理系统演变而来 二 经销商订单系统的流程 2 1 第一步 通
  • 【无标题】黑群辉DSM 6.2.3 系统安装图文教程 (2020-12-27更新)

    https www openos org threads dsm 6 2 3 2020 12 27 29 黑群晖系统其实是指在普通电脑运行Synology DSM系统 事实上在普通PC电脑上安装黑群晖 Synology DSM 也非常方便
  • 2.5.8 构架虚拟SCSI(存储)

    最后更新2021 07 29 架构虚拟SCSI与虚拟Ethernet类似 也需要如下四个步骤 首先 设定需要映射的设备类型 包括LV方式的虚拟磁盘 LUN方式的虚拟磁盘 虚拟光盘 磁带机 并确认VIO分区可以正确使用要映射设备 物理资源 本
  • 讯飞语音识别_讯飞输入法持续功能创新 语音输入最受用户认可

    犹记得10多年前功能机上的输入法 无论是拼音还是笔画 通过物理键盘按部就班地进行输入 效率异常低下 所幸那时候网络没有那么发达 手机聊天应用并不怎么丰富 而且彼时手机还只是 通讯设备 输入法的作用并未体现出来 时至今日 移动应用的兴盛以及手
  • 剑指offer15替换空格字符串

    package heima study day3 import java util Scanner public class 替换空格剑指offer public static void main String args Scanner i
  • Java安全代码扫描问题:不允许使用自动加载类

    解决问题 代码安全扫描 Classes should not be loaded dynamically 要求 Remove this use of dynamic class loading 解决方法 使用jdk自带方法 ClassLoa
  • 【因果学习】VC RCNN(CVPR 2020)代码

    作者基于MaskRCNN框架 Detectron2的前身 开发 受Bottom Up and Top Down Attention for Image Captioning and VQA启发 使用Mask RCNN作为Bottom Up的
  • java spring scope_java – Spring和scope属性

    我在Spring学习中遇到问题 需要一些帮助 我正在学习bean的原型范围 这基本上意味着每次有人或其他bean需要这个bean时 Spring会创建一个新bean而不使用相同的bean 所以我尝试了这段代码 假设我有这个Product类