Spring中获取bean的方式

1. 获取bean

在上图的测试类中我们是通过id来获取bean的。实际上获取bean的方式有很多种,下面我们就一一说明。

由于 id 属性指定了 bean 的唯一标识,所以根据 bean 标签的 id 属性可以精确获取到一个组件对象。
如开头中我们使用的就是这种方式。
bean标签属性:

  • id:设置bean的唯一标识
  • class:设置bean所对应类型的全类名

用的比较多

注意

  • 当根据类型获取bean时,要求IOC容器中指定类型的bean 有且只能有一个 当IOC容器中一共配置了两个:

会抛出异常:NoUniqueBeanDefinitionException
* 若没有任何一个类型匹配的bean,此时会抛出异常:NoSuchBeanDefinitionException

第三种方式是不是有点鸡肋。。

或许是单纯通过id获取需要强制类型转化吧,单纯通过类型当匹配bean有多个时又不行,所以结合起来用。

  • 如果组件类实现了接口,根据接口类型可以获取 bean 吗? 就是用了 implements关键字
    Spring中获取bean的方式
  • 如果一个接口有多个实现类,这些实现类都配置了 bean,根据接口类型可以获取 bean 吗?

    不行,因为bean不唯一。上面已经提到了

2. 总结

Original: https://www.cnblogs.com/tianaqiang/p/16611118.html
Author: 就是搞笑啊
Title: Spring中获取bean的方式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/610124/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • markdown语法学习

    markdown语法学习 标题: 一共有六级标题一级标题:#号+空格+标题名称 或 ctrl+1 二级标题:##号+空格+标题名称或ctrl+2 以此类推…&#8230…

    Java 2023年6月7日
    068
  • POI往word模板中写入数据

    word导出excel表格自适应宽度 https://www.cnblogs.com/libin6505/p/10339045.html Word 模板引擎,基于Apache po…

    Java 2023年5月29日
    092
  • springmvc date

    数据格式化,从本质上讲属于数据转换的范畴。Spring就是基于数据转换框架植入”格式化”功能的。 在数据转换时我们进行了如下配置: 我们使用的是Conver…

    Java 2023年5月30日
    072
  • 读时加写锁,写时加读锁,Eureka可真的会玩

    大家好,我是三友~~ 在对于读写锁的认识当中,我们都认为读时加读锁,写时加写锁来保证读写和写写互斥,从而达到读写安全的目的。但是就在我翻Eureka源码的时候,发现Eureka在使…

    Java 2023年6月16日
    097
  • Nginx配置https 之 找不到 ./configure

    Nginx配置https 之 找不到 ./configure 需求 要配置个https 问题 找不到文件在哪里 教程很简单,发现就是找不到 ./configure 这个文件这个文件…

    Java 2023年5月30日
    084
  • Spring IOC装配Bean

    Spring IOC装配Bean Spring主要支持两种依赖注入方式,分别是属性注入和构造函数注入。同时也支持工厂方法注入方式。 属性注入的方式非常简单,即指通过setXxx()…

    Java 2023年6月7日
    069
  • Linux下修改mysql的root密码

    一、知道原来的myql数据库的root密码; 1、 在终端命令行输入 mysqladmin -u root -p password "新密码" 回车 ,Ente…

    Java 2023年6月13日
    071
  • 多线程简介

    多线程简介 程序本身是指定和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。 而 进程则是执行程序中的一次执行过程,是一个动态的概念。是系统能够资源分配的单位。 通常在…

    Java 2023年6月9日
    094
  • 分库分表ShardingSphere-JDBC笔记整理

    一、分库分表解决的现状问题 解决数据库本身瓶颈 连接数: 连接数过多时,就会出现’too many connections’的错误,访问量太大或者数据库设置…

    Java 2023年6月13日
    078
  • Java如何实现消费数据隔离?

    我是3y,一年 CRUD经验用十年的 markdown程序员👨🏻‍💻常年被誉为优质八股文选手 今天继续更新austin项目,如果还没看过该系列的同学可以点开我的历史文章回顾下,在看…

    Java 2023年6月9日
    070
  • Mysql 去回车空格

    MySQL 去除字段中的换行和回车符 解决方法:UPDATE tablename SET xxx= REPLACE(REPLACE(xxx, CHAR(10), ”),…

    Java 2023年6月13日
    073
  • vue前后端分离项目,使用宝塔面板解决跨域问题,设置Nginx反向代理

    开发环境解决跨域问题: 使用教程 跨域解决本地跨域问题 非唯一方法 生成环境解决跨域问题: 1.创建站点 2.把打包的vue项目dist发送解压到站点里面 ,选择静态模式 3.然后…

    Java 2023年6月5日
    0115
  • 写个续集,填坑来了!关于“Thread.sleep(0)这一行‘看似无用’的代码”里面留下的坑。

    你好呀,我是居家十三天只出了一次小区门的歪歪。 这篇文章是来填坑的,我以前写文章的时候也会去填之前的一些坑,但是由于拖延症,大多都会隔上上几个月。 首先非常感谢阅读我文章的朋友,同…

    Java 2023年6月5日
    071
  • 学习狂神Spring5_课堂笔记(更新中)

    Spring 简介 spring,英文单词为春天,表示为软件行业带来了春天。 2002年,首次推出了Spring框架的雏形:interface21框架。官网为:www.interf…

    Java 2023年6月5日
    080
  • 优化排查-线程阻塞:CompletableFuture 和 DiscardPolicy

    优化排查-线程阻塞:CompletableFuture 和 DiscardPolicy 问题发现 1 前天大佬通过prometheus发现 tomcat http busy状态的线…

    Java 2023年6月5日
    090
  • IDEA使用JDBC链接MySql(java编程)

    1、在Maven的pom.xml文件中引入MySql的驱动 2、idea(版本:2021.2.2)JDBC链接MySql数据库 3、编写JDBC代码 : Original: htt…

    Java 2023年6月7日
    060
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球