基于注解的自动装配之@Autowired的原理及注意事项

news2024/11/23 20:57:36

基于注解的自动装配之@Autowired的原理及注意事项

1. @Autowired的原理

首先根据所需要的组件类型到IOC容器中查找

  • 能够找到唯一的bean:直接执行装配

  • 如果完全找不到匹配这个类型的bean:装配失败

  • 和所需类型匹配的bean不止一个

    • 没有@Qualifier注解:根据@Autowired标记位置成员变量的变量名作为bean的id进行匹配

      • 能够找到:执行装配

      • 找不到:装配失败

    • 使用@Qualifier注解:根据@Qualifier注解中指定的名称作为bean的id进行匹配

      • 能够找到:执行装配

      • 找不到:装配失败

2.注意事项

  • @Autowired中有属性required,默认值为true,要求必须完成自动装配,因此在自动装配无法找到相应的bean时,会装配失败,此时会抛出异常:NoSuchBeanDefinitionException
  • 可以将属性required的值设置为false,此时能装配就装配,无法装配则使用属性的默认值
  • 但是实际开发时,基本上所有需要装配组件的地方都是必须装配的,用不上这个属性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/115712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YGG 与 Mike Ovecka 对 Web3 电子竞技的愿景

(从左到右)YGG 内容创作者 Een Mercado、Ampverse Web3 负责人 Sascha Jochum、Axie Infinity 菲律宾负责人 Nix Eniego、MetaSports 联合创始人兼 CEO Joe Josue 和 YGG 电子竞技负责人 Mike Ovecka 在 Philippine Web3 Festival 的“区块链游戏电子竞…

MybatisPlus代码生成器配置(处理blob等类型)

一&#xff1a;新建springboot项目 二&#xff1a;导包 <dependencies><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.3.2</version></dependency><depe…

ATJ2158界面绘制LVGL---定时器

LVGL定时器 在lv_timer.c中有相关的操作函数 Create a timer&#xff08;创建定时器&#xff09; LVGL 有一个内置的定时器系统。可以注册一个函数以定期调用它。定时器在lv_timer_handler()中被处理和调用&#xff0c;它需要每隔几毫秒调用一次 Ready and Reset&#xff0…

fio磁盘压测工具

文章目录背景安装测试如何模拟现实中的IOfio参数解释【1】随机读测试【2】随机写测试【3】 顺序读测试【4】 顺序写测试numjobs5 测试随机读随机写顺序读顺序写blktracefio 模拟真实IO场景查看 blktrace 记录的结果将结果转化为二进制文件使用 fio 重放日志结论背景 因为是虚拟…

Oracle 备份与恢复常见的七大问题

为了最大限度保障数据的安全性&#xff0c;同时能在不可预计灾难的情况下保证数据的快速恢复&#xff0c;需要根据数据的类型和重要程度制定相应的备份和恢复方案。在这个过程中&#xff0c;DBA的职责就是要保证数据库&#xff08;其它数据由其它岗位负责&#xff09;的高可用和…

Linux常用操作(下)

目录 文件传输 全局查找 管道符 统计数目 vim快捷键 软件安装 用户和组 文件权限 文件传输 yum install lrzsz -y rpm -qa |grep lrzsz 完成后直接将文件拖入xshell即可 全局查找 grep 字符串 文件名 grep colea * grep -r colea *//递归全局查找 管道符 ps -ef…

边缘AI概述

随着移动计算和物联网&#xff08;IoT&#xff09;应用程序的爆炸性增长&#xff0c;数十亿移动和物联网设备正在连接到互联网&#xff0c;在网络边缘生成大量数据。因此&#xff0c;在云数据中心收集大量数据会产生极高的延迟和网络带宽使用。 因此&#xff0c;迫切需要将人工…

K8S——调用亲和性

k8s-调度亲和性 简介 Scheduler 是 kubernetes 的调度器&#xff0c;主要的任务是把定义的 pod 分配到集群的节点上。听起来非常简单&#xff0c;但有 很多要考虑的问题&#xff1a; 公平&#xff1a;如何保证每个节点都能被分配资源资源高效利用&#xff1a;集群所有资源最…

为什么NoSQL数据库这么受欢迎?

大数据时代&#xff0c;NoSQL数据库是企业构建数据能力的核心工具之一。近期&#xff0c;在2022腾讯全球数字生态大会NoSQL数据库专场上&#xff0c;腾讯云发布了多项NoSQL产品能力升级&#xff0c;并重点讲解了其背后的自研技术要点及实现细节&#xff0c;分享了腾讯云NoSQL为…

利用Python自动生成请假条,实现高效摸鱼

哈喽兄弟们&#xff0c;今天咱们来实现用Python来批量生成请假条&#xff0c;这回既学了东西又做了事情&#xff0c;两不误~ 本文就将基于一个真实的办公案例进行讲解如何提取Excel内容并创建Word 主要将涉及以下三个知识点 openpyxl 读取 Excel 文件python-docx 写入 Word …

org.springframework.jdbc.BadSqlGrammarException: Error updating database

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; org.springframework.jdbc.BadSqlGrammarException: Error updating database 报错信息&#xff1a; org.springframework.jdbc.BadSqlGrammarException: Error updat…

Python基础入门(一)

文章目录前言Python起源简介常量和表达式什么是变量变量的语法变量的定义变量的命名规则使用变量变量的类型动态类型的变量注释注释是什么注释的基本语法注释的书写规范输入输出通过控制台输出格式化输出输入转义字符运算符算数运算符关系运算符逻辑运算符赋值运算符复合赋值运…

Python高频面试题——迭代器和可迭代对象

无论是面试测试还是运维涉及到python编码岗位时&#xff0c;迭代器和可迭代对象都是绕不开的一个问题&#xff0c;本文对这两个概念进行重点讲解&#xff0c;本文从什么是迭代讲起&#xff0c;然后介绍迭代器和可迭代对象二者的区别&#xff0c;最后通过for 循环和自定义迭代器…

150万奖金:首届6G智能无线通信系统大赛正式上线

通信与人工智能技术的深度融合已成为无线通信系统发展的最重要方向之一&#xff0c;面向6G&#xff0c;通信与AI融合的角度和深度将进一步扩展&#xff0c;迎接“无限”可能。在6G研究的关键发展阶段&#xff0c;由IMT-2030(6G)推进组主办&#xff0c;中国信息通信研究院、华为…

【折腾服务器 3】群晖学习版中安装 Active Backup for Business 及相关配置 =)

Catch UP 书接上回&#xff0c;在 ESXi 中安装了群晖系统&#xff0c;这个系统主要是用来给 Windows 物理机做备份的&#xff0c;因此在本片主要讲解如何配置 Active Backup for Business 软件。 Chapter 1 设置存储空间 上一篇博客中&#xff0c;安装群晖时分配了一个 32GB…

rancher2.6.2 单机及高可用部署

rancher2.6.2 单机及高可用部署 文章目录rancher2.6.2 单机及高可用部署前言单机部署高可用部署k8s集成前言 1、服务器准备 单机部署&#xff1a; 机器名IP地址部署内容cpu核心数内存(G)硬盘(G)rancher-master192.168.0.18rancher2450 高可用部署&#xff1a; 机器名IP地址…

Linux环境下通过命令行连接WIFI

一. 前言 在调试ARTIK时由于Ubuntu系统不是图形化界面&#xff0c;需要下载相关安装包时发现未联网&#xff0c;因此对Linux下采用命令行连接wifi的具体操作步骤进行总结&#xff0c;对自己在操作过程中遇到的相关问题解决方法进行介绍&#xff0c;同时对于LINUX下无线网络调试…

JUC(一):线程池

个人博客地址&#xff1a; http://xiaohe-blog.top/index.php/archives/14/ 文章目录1. 为什么要使用线程池2. Executor3. ThreadPoolExecutor3.1 七个参数3.2 任务队列3.3 拒绝策略4. 创建线程池5. Executors5.1 CachedThreadPool5.2 FixedThreadPool5.3 SingleThreadExecutor…

Vue3 异步组件 suspense

vue在解析我们的组件时&#xff0c; 是通过打包成一个 js 文件&#xff0c;当我们的一个组件 引入过多子组件是&#xff0c;页面的首屏加载时间 由最后一个组件决定 优化的一种方式就是采用异步组件 &#xff0c;先给慢的组件一个提示语或者 骨架屏 &#xff0c;内容回来在显示…

大话测试数据(一)

导读&#xff1a;测试数据的准备至关重要&#xff0c;无论是手工测试还是自动化测试都要以良好的测试数据准备为基础。本文为霍格沃兹测试学院特邀嘉宾&#xff0c;某互联网巨头企业资深测试技术专家刘晓光&#xff08;skytraveler&#xff09;老师对测试数据管理实践的思考总结…