spring ioc容器中某个Class的bean对象是否只有一个,是否就是单例的[spring总结]

2023-05-16

package com.xxx.product.web;

/**
 * @program: product
 * @description
 * @create: 2021-05-12 17:28
 **/
public interface OrderService {

    boolean deleteOrderById(Long orderId);
}


package com.xxx.product.web;

import org.springframework.stereotype.Service;

/**
 * @program: product
 * @description
 * @create: 2021-05-12 17:28
 **/
@Service
public class OrderServiceImpl implements OrderService {

    @Override
    public boolean deleteOrderById(Long orderId) {
        return false;
    }
}



参看上面的代码,问题:

1. OrderService 的bean对象在ioc 容器中是否只有一个?

2. 如果不止一个,多个的话, 这多个 OrderService 对象是同一个对象吗?

3. 如果存在是多个对象,如何往ioc容器中放置多个OrderService 对象?

 

都说spring ioc容器启动的时候,默认创建的bean对象都是单例的,假如你不配置的话,单例对象,和我们了解的单例模式有点像,但是这两者是没有绝对的关联关系。

解答:

1. 上面的OrderService 对象在ioc容器中是只有一个,因为我们只创建了一个 OrderService 对象,这个对象是spring 初始化的时候根据@Service注解 生成创建的。

但是我们可以创建多个 OrderService 对象然后交由spring帮我们管理,这样在ioc容器中就有多个 OrderService bean对象了。至于怎么将普通的对象交由spring 管理 ,可以看我博客中的另外一篇文章。

 

2.  ioc容器中可以有多个 OrderService对象,并且这些bean对象是不同的对象,和我们了解的单例模式不是一个概念,思想上不要先入为主,看到单例就和单例模式匹配了。

 

3.  @Bean 注解就是其中的一种方式,通过这个注解可以创建多个 OrderService bean对象,这样在 ioc容器中就有 多个 OrderService bean对象了, 示例:

 

package com.xxx.product.web.configure;
 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @program: product
 * @description
 * @create: 2021-05-12 18:04
 **/
@Configuration
public class MyConfig {

    /**
     * ioc 容器中beanname 是'orderService'
     * @return
     */
    @Bean
    public OrderService orderService(){
        OrderService orderService = new OrderServiceImpl();
        return orderService;
    }

    /**
     * ioc 容器中beanname 是'orderService2'
     * @return
     */
    @Bean
    public OrderService orderService2(){
        OrderService orderService = new OrderServiceImpl();
        return orderService;
    }

    /**
     * ioc 容器中beanname 是'orderService3'
     * @return
     */
    @Bean
    public OrderService orderService3(){
        OrderService orderService = new OrderServiceImpl();
        return orderService;
    }
    
}

通过相应的 beanname就能从 ioc容器中获取到 对应的bean。 你可以测试下结果。

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

spring ioc容器中某个Class的bean对象是否只有一个,是否就是单例的[spring总结] 的相关文章

  • NSGA2算法中文详解与MATLAB实现整理

    NSGA2算法 NSGA II多目标遗传算法概述 http www omegaxyz com 2017 04 14 nsga iiintro NSGA2算法MATLAB实现 xff08 能够自定义优化函数 xff09 http www om
  • 对极大似然估计的理解

    参数估计 xff08 parameter estimation xff09 统计推断的一种 根据从总体中抽取的随机样本来估计总体分布中未知参数的过程 从估计形式看 xff0c 区分为点估计与区间估计 xff1a 从构造估计量的方法讲 xff
  • 动态规划——最大整除子集C++

    来自LeetCode 368 描述 给出一个由无重复的正整数组成的集合 xff0c 找出其中最大的整除子集 xff0c 子集中任意一对 Si xff0c Sj 都要满足 xff1a Si Sj 61 0 或 Sj Si 61 0 如果有多个
  • HyperVolume多目标评价指标概述

    提出 Hypervolume 指标评价方法最早是由 Zitzler 等提出 xff0c 它表示由解集中的个体与参考点在目标空间中所围成的超立方体的体积 评价标准 Hypervolume 指 标 评 价 方 法 是 一 种 与 Pareto
  • 三路快排C++实现与应用

    本文共467个字 xff0c 预计阅读时间需要2分钟 三路快排是快速排序算法的升级版 xff0c 用来处理有大量重复数据的数组 主要思想是选取一个key xff0c 小于key的丢到左边 xff0c 大于key的丢到右边 xff0c 递归实
  • Wilcoxon秩和检验简介与MATLAB实现

    Wilcoxon秩和检验 rank sum test xff0c 有时也叫Mann Whitney U检验 xff0c 是另一类非参数检验方法 xff0c 它们不对数据分布作特殊假设 xff0c 因而能适用于更复杂的数据分布情况 适用性 x
  • FatMouse’ Trade

    简介 贪心算法 xff08 又称贪婪算法 xff09 是指 xff0c 在对问题求解时 xff0c 总是做出在当前看来是最好的选择 也就是说 xff0c 不从整体最优上加以考虑 xff0c 他所做出的是在某种意义上的局部最优解 贪心算法不是
  • 算法复杂度与NP问题

    引言 美剧 基本演绎法 S2E2中 xff0c 两位研究 NP 问题的数学家被谋杀了 xff0c 凶手是同行 xff0c 因为被害者即将证明 P 61 NP 问题 假设人类证明了P 61 NP 是真的 xff0c 那么就会有一个算法 xff
  • 素数筛C++

    埃拉托斯特尼筛法 xff08 sieve of Eratosthenes xff09 是古希腊数学家埃拉托斯特尼发明的计算素数的方法 对于求解不大于n的所有素数 xff0c 我们先找出sqrt n 内的所有素数p1到pk xff0c 其中k
  • ubuntu安装mysql-server环境解决无穷依赖问题

    问题 ubuntu14 04 3安装mysql时报错 xff1a sudo apt get install mysql server mysql client 正在读取软件包列表 完成 正在分析软件包的依赖关系树 正在读取状态信息 完成 有
  • Levenshtein编辑距离C++实现

    简介 Levenshtein Distance是1965年由苏联数学家Vladimir Levenshtein发明的 Levenshtein Distance也被称为编辑距离 xff08 Edit Distance xff09 在信息论和计
  • 红黑树简介与C++应用

    简介 红黑树 xff08 Red Black Tree xff09 是一种自平衡二叉查找树 xff0c 是在计算机科学中用到的一种数据结构 xff0c 典型的用途是实现关联数组 它是在1972年由Rudolf Bayer发明的 xff0c
  • 碰撞域与广播域的区别

    在说到碰撞域 xff08 冲突域 xff09 和广播域之前 xff0c 首先要介绍一下三个网络互连设备 集线器 交换机和路由器 集线器 集线器是工作在物理层的设备 xff0c 当他收到数据以后就把这个数据复制复制以后就把这个数据象所有的接口
  • WordPress数据库error establishing a database connection错误

    本文共777个字 xff0c 预计阅读时间需要2分钟 作为一个买不起大型服务器只能用阿里云学生机的站长 xff0c 经常遇到error establishing a database connection错误 这是一种建立数据库连接时的错误
  • 基于稀疏大规模矩阵的多目标进化算法简介

    简介 可以看到本文的特色图片是个极度稀疏连接的神经网络 xff0c 它是由我们即将介绍论文中的算法SparseEA得到的 此篇论文是BIMK的田野 张兴义等人发表在IEEE Transactions on Evolutionary Comp
  • 回溯法——素数环C++实现

    本文共928个字 xff0c 预计阅读时间需要3分钟 回溯法简介 回溯法按深度优先策略搜索问题的解空间树 首先从根节点出发搜索解空间树 xff0c 当算法搜索至解空间树的某一节点时 xff0c 先利用剪枝函数判断该节点是否可行 xff08
  • Prime Path素数筛与BFS动态规划

    本文共2053个字 xff0c 预计阅读时间需要6分钟 BFS BFS xff0c 其英文全称是Breadth First Search BFS并不使用经验法则算法 从算法的观点 xff0c 所有因为展开节点而得到的子节点都会被加进一个先进
  • C++读取和写入文件(fstream等)

    本文共321个字 xff0c 预计阅读时间需要1分钟 2019年7月非常忙 xff0c 这大概是这个月的第一篇吧 某高校机试需要从文件中读取数据并将数据写入到文件中 完成这一操作需要用到fstream模块 xff0c 网上一堆资料 xff0
  • 并查集应用——PAT甲级2019春季

    并查集适用问题举例 1 已知 xff0c 有n个人和m对好友关系 2 如果两个人是直接的或者间接的好友 xff08 好友的好友的好友 xff09 xff0c 那么他们属于一个集合 xff0c 就是一个朋友圈中 3 写出程序 xff0c 求这
  • 抽象工厂模式与单件模式C++混合实现

    抽象工厂 当每个抽象产品都有多于一个的具体子类的时候 xff0c 工厂角色怎么知道实例化哪一个子类呢 xff1f 比如每个抽象产品角色都有两个具体产品 抽象工厂模式提供两个具体工厂角色 xff0c 分别对应于这两个具体产品角色 xff0c

随机推荐

  • source命令自动运行terminal的指令

    source命令也称为 点命令 xff0c 也就是一个点符号 xff08 xff09 source命令通常用于重新执行刚修改的初始化文件 xff0c 使之立即生效 xff0c 而不必注销并重新登录 用法 xff1a source filen
  • 适配器模式C++实现

    本文共916个字 xff0c 预计阅读时间需要3分钟 简介 适配器模式 xff1a 将一个类的接口转换成客户希望的另一个接口 适配器模式让那些接口不兼容的类可以一起工作 适配器模式的别名为包装器 Wrapper 模式 xff0c 它既可以作
  • 装饰模式C++实现

    简介 动态地给一个对象添加一些额外的职责 就增加功能来说 xff0c 装饰模式比生成子类更为灵活 动机 有时我们希望给某个对象而不是整个类添加一些功能 使用继承机制是添加功能的一种有效途径 xff0c 但不够灵活 xff0c 用户不能控制对
  • 软件测试——测试计划

    完整版 xff08 包括表格和图片 xff09 请访问 xff1a http www omegaxyz com 2019 08 02 software testing 本文共6034个字 xff0c 预计阅读时间需要16分钟 文章目录 1简
  • 享元模式C++实现(flyweight)

    简介 动机 假设成立一个外包公司 xff0c 主要给一些私营业主建网站 商家客户都类似 xff0c 要求也就是信息发布 产品展示 博客留言 论坛等功能 各个客户要求差别不大 xff0c 但客户数量多 内部状态和外部状态 在享元对象内部并且不
  • mat格式数据集转换为arff与txt格式

    本文共239个字 xff0c 预计阅读时间需要1分钟 下面的代码给出了将mat格式数据集转换为arff与txt格式的matlab代码 注意 xff0c 每个 mat文件中只有一个数据集 xff0c 其中共有m 43 1列 xff0c 最后一
  • 给linux 增加软件图标

    文章目录 其实如果是自己用的软件 xff0c 没必要像wps 安装之后 图标的复杂性 xff0c 我这里更加简单1 复制一个稍微简单的 desktop 文件并重命名你安装的软件的名称2 改动里面的东西 xff0c 下面 是Typora 软件
  • 计算机组成原理--I/O系统

    大学峡谷秀 xff0c 机组未学溜 xff0c 如今涕泪流 xff0c 共勉之 近来学习netty零拷贝 xff0c 复习并笔记之 1 概念 以主机为中心 xff0c 将信息从外部设备读入或输出的操作称为IO xff0c 外部设备包括输入输
  • ae怎样设置gpu渲染

    1 方法 xff1a 在 编辑 首选项 常规 中 选择 预览 xff0c 旁边有个 GPU信息 光线追踪 选择GPU即可 2 对于 GPU 显示灰色 xff08 既不可选 xff09 的朋友 在AE插件目录下 xff08 Support F
  • conio.h头文件

    conio h conio h不是C标准库中的头文件 conio是Console Input Output xff08 控制台输入输出 xff09 的简写 xff0c 其中定义了通过控制台进行数据输入和数据输出的函数 xff0c 主要是一些
  • 企业微信如何关联小程序?

    我们在日常使用微信时 xff0c 经常会用到小程序功能 xff0c 直接从微信中打开第三方页面 xff0c 很是方便 xff0c 那么自从企业微信与微信打通之后 xff0c 我们该如何将小程序与企业微信联系起来使用呢 xff1f 其实 xf
  • 在 Mac OS X 上安装 TensorFlow

    在 Mac OS X 上安装 TensorFlow 原文地址 xff1a https www cnblogs com tensorflownews p 7298646 html 这个文档说明了如何在 Mac OS X 上安装 TensorF
  • linux /centos 中OpenSSL升级方法详解

    OpenSSL升级前段时间出现天大bug了 xff0c 这样导致大家都急着去升级OpenSSL来初安全了 xff0c 但是很多的朋友在家linux并不知道如何去升级OpenSSL了 xff0c 下面我整理了一文章大家一起参考一下 相关软件下
  • 【字符验证】java el正则表达式使用

    支持 xff1a 中文 英文 下划线 xff0c 单独或三者合一 xff1a String regex 61 34 u4E00 u9FA5A Za z0 9 43 34 if 34 Adsf 最大的 34 matches regex Sys
  • synchronized原理

    一 synchronized简介 1 java中的关键字 xff0c 在JVM层面上围绕着内部锁 intrinsic lock 或者监管锁 xff08 Monitor Lock xff09 的实体建立的 xff0c Java利用锁机制实现线
  • 11-JUC中的Condition对象

    文章目录 ConditionCondition常用方法总结参考 Condition 任何一个java对象都天然继承于Object类 xff0c 在线程间实现通信的往往会应用到Object的几个方法 xff0c 比如wait wait lon
  • 使用微软New Bing Chat GPT-4生成AI图像的技巧

    在聊天的创意模式中 xff0c 你现在可以要求Bing为你创建一个全新的图像 xff0c 只用你的话语 只需说 34 为我创建一个图像 34 或 34 为我绘制一个图像 34 xff0c 最后准确地说出你要找的东西 当你的描述性更强时 xf
  • 空间权重矩阵

    空间权重矩阵 前言一 空间权重矩阵是什么 xff1f 二 构建模型1 方法1 基于邻接关系构建2 基于距离构建3 复合型 三 总结 前言 随着学习的深入 xff0c 特别是在做空间统计分析的时候 xff0c 空间权重矩阵越来越频繁的出现在我
  • 时间序列模型——AR、MA、ARMA、ARIMA

    这里写目录标题 时间序列模型自回归模型差分与非平稳序列差分检验不平稳 移动平均模型移动平均法MA模型 ARMA模型ARIMA建模方法 时间序列模型 常用的时间序列模型有四种 xff1a 自回归模型 AR p 移动平均模型 MA q 自回归移
  • spring ioc容器中某个Class的bean对象是否只有一个,是否就是单例的[spring总结]

    package com xxx product web 64 program product 64 description 64 create 2021 05 12 17 28 public interface OrderService b