SpringBoot设置多例

1、准备数据

  • 测试接口
package com.cc.jschdemo.springmultiton;

/**
* <p>spring多例测试</p>
*
* @author --
* @since 2023/11/23
*/
public interface ISpringMultiton {
}
  • 测试接口实现(注入spring)
package com.cc.jschdemo.springmultiton;

import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service; /**
* <p></p>
*
* @author --
* @since 2023/11/23
*/
@Component
public class SpringMultitonImpl implements ISpringMultiton{
}

2、默认单例测试

    @Resource
private ISpringMultiton springMultiton; //默认是单例的
@Test
public void test04()throws Exception{
int i = springMultiton.hashCode();
System.out.println("第一次使用的地址:" + i); int i1 = springMultiton.hashCode();
System.out.println("第二次使用的地址:" + i1);
}
  • hashCode结果:

  • 内存结果:

3、☆☆实现多例☆☆

  • spring注入默认单例,要实现多例,必须配置

3.1、测试接口实现(注入spring)加上:@Scope("prototype")

package com.cc.jschdemo.springmultiton;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service; /**
* <p></p>
*
* @author --
* @since 2023/11/23
*/
@Component
@Scope("prototype")
public class SpringMultitonImpl implements ISpringMultiton{ }

3.2、注入时使用:ObjectProvider

    @Resource
private ObjectProvider<ISpringMultiton> objectProvider; @Test
public void test05()throws Exception{
//这里的objectProvider.getObject()获取出来的,就相当于spring注入的ISpringMultiton
ISpringMultiton springMultiton1 = objectProvider.getObject();
int i = springMultiton1.hashCode();
System.out.println("第一次使用的地址:" + i); ISpringMultiton springMultiton2 = objectProvider.getObject();
int i1 = springMultiton2.hashCode();
System.out.println("第二次使用的地址:" + i1);
}
  • hashCode结果:

  • 内存结果:

SpringBoot注入时设置《多例》的更多相关文章

  1. 7.28.1 Spring构造注入还是设置注入

    1. 构造方法注入代码如下:public UserManagerImpl(UserDao userDao) {                                              ...

  2. 从浏览器发送请求给SpringBoot后端时,是如何准确找到哪个接口的?(下篇)

    纸上得来终觉浅,绝知此事要躬行 注意: 本文 SpringBoot 版本为 2.5.2; JDK 版本 为 jdk 11. 前言: 前文:你了解SpringBoot启动时API相关信息是用什么数据结构 ...

  3. sql手工注入时的探测技巧汇总

    工具的灵活性肯定比不上人,在手工探测的基础上再去自定义工具,才是正道. sql注入时手工探测技巧 =================================================== ...

  4. sql注入时易被忽略的语法技巧以及二次注入

    那些容易被忽略.容易被弄错的地方 sql注入时的技巧 ========================================================================= ...

  5. 嗅探、中间人sql注入、反编译--例说桌面软件安全性问题

    嗅探.中间人sql注入.反编译--例说桌面软件安全性问题 今天这篇文章不准备讲太多理论,讲我最近遇到的一个案例.从技术上讲,这个例子没什么高深的,还有一点狗屎运的成分,但是它又足够典型,典型到我可以讲 ...

  6. listview当选中某一个item时设置背景色其他的不变

    listview当选中某一个item时设置背景色其他的不变: 可以使用listview.setOnFoucsChangeListener(listener) ; /** * listview获得焦点和 ...

  7. [转]Loadrunner11之VuGen运行时设置Run-Time Setting

    转自:http://www.51testing.com/html/92/450992-248065.html General 1.Run Logic运行逻辑 脚本如何运行的,每个action和acti ...

  8. LoadRunner 学习笔记(2)VuGen运行时设置Run-Time Setting

    定义:在Vugen中Run-Time Setting是用来设置脚本运行时所需要的相关选项

  9. AForge调用摄像头拍照时设置分辨率

    简单记录下AForge2.2.5.0版本调用摄像头拍照时设置分辨率的方法. FilterInfo info = _videoDevices[0];//获取第一个摄像头 _cameraDevice = ...

  10. loadrunner 运行场景-运行时设置

    运行场景-运行时设置 by:授客 QQ:1033553122 A.   查看.修改单个脚本的运行时设置 a)   途径1: Scenario Groups.Scenario Groups Script ...

随机推荐

  1. Shiro反序列化分析

    前言 Shiro,一个流行的web框架,养活了一大批web狗,现在来对它分析分析.Shiro的gadget是CB链,其实是CC4改过来的,因为Shiro框架是自带Commoncollections的, ...

  2. vue初学核心基础02

    8.v-bind补充 8.1v-bind绑定类名 v-bind指令给"任意标签"的"任意属性"绑定数据 对于大部分的属性而言我们只需要直接赋值即可, 例如:va ...

  3. C# 强大的网页处理类NSoup

    地址: https://github.com/GeReV/NSoup using System; using System.Collections.Generic; using System.Comp ...

  4. AXI4的主机协议代码分析

    AXI4的主机协议代码分析 一.模块分析 (1)端口列表 input wire INIT_AXI_TXN, // Asserts when ERROR is detected output reg E ...

  5. 大模型提示工程之Prompt框架和示例

    今天和大家分享一下:大模型提示工程之Prompt框架和示例: TAG框架 任务(Task): 开发一个新的手机应用,旨在帮助用户更好地管理他们的日常健康. 行动(Action): 进行市场调研,设计用 ...

  6. 一个可以让你有更多时间摸鱼的WPF控件(一)

    前言 我们平时在开发软件的过程中,有这样一类比较常见的功能,它没什么技术含量,开发起来也没有什么成就感,但是你又不得不花大量的时间来处理它,它就是对数据的增删改查.当我们每增加一个需求就需要对应若干个 ...

  7. #树状数组,欧拉函数#CF594D REQ

    题目 给定 \(n\) 个数,求 \(\varphi(\prod_{i=l}^r{a_i})\) 分析 考虑单个欧拉函数的求法,只需要求出这个数的质因数计算即可. 那么考虑离线,枚举右端点,记录每个质 ...

  8. #模拟#B 字串修改

    题目 有两个字符串\(s,t\),其中\(s\)只包含小写字母以及 *,\(t\)只包含小写字母. 你可以进行任意多次操作,每次选择\(s\)中的一个 *,将它修改为任意多个(可以是0个)它的前一个字 ...

  9. 熊磊:成功移植 OpenHarmony 到多套开发板,是最开心的事

    编者按:在 OpenHarmony 生态发展过程中,涌现了大批优秀的代码贡献者,本专题旨在表彰贡献.分享经验,文中内容来自嘉宾访谈,不代表 OpenHarmony 工作委员会观点. 熊磊 华为技术有限 ...

  10. C++ 智能指针和内存管理:使用指南和技巧

    C++是一门强大的编程语言,但是在内存管理方面却存在着一些问题.手动管理内存不仅费时费力,而且容易出错.因此,C++中引入了智能指针这一概念,以更好地管理内存. 什么是智能指针? 在C++中,内存的分 ...