当前位置: 首页 > news >正文

Spring中的@Autowired和@Bean有什么区别?

@Autowired

@Autowired用于注入bean,前提是这个bean要注册在spring容器中,通过@Component、@Service、@Controller、@Repository、@Configration等注解可以将bean注册到spring容器中,然后通过@Autowired、@Resource或者@RequiredArgConstructor可以从容器中拿出bean使用。

@Autowired、@Resource、@RequiredArgsConstructor有什么区别?

@Autowired是spring提供的注解,@Resource是JDK提供的注解,而@RequiredArgsConstructor是Lombok提供的注解。

@Autowired按照类型注入bean,如果spring容器中不存在此类型的bean,会报错,可以搭配@Qulifier来按照name注入bean。

@Resource先按照name注入bean,如果name不存在,再根据类型来注入bean。

@Autowied和@Resource可以在字段、方法、构造器上使用,在字段上使用是字段注入,通过反射实现;在方法上使用是setter注入;在构造器上使用是构造注入。而@RequiredArgsConstructor是在类上使用的,会自动给final修饰的变量生成构造器,从而构造注入使用。

@Bean

@Bean是用于注册bean的,@Component是用于注册我们自己定义的bean,将自定义的bean注册到spring容器中,而对于Maven导入的一些第三方jar包要注册到spring中就需要使用@Bean注解了,@Bean注解用于方法上,在这个方法中我们产生对象,这个对象就会注册到容器中。

http://www.dtcms.com/a/328463.html

相关文章:

  • 【超详细!题解|两种做法】洛谷P3196 [HNOI2008] 神奇的国度[MCS算法]
  • linux 开机进入initramfs无法开机
  • 嵌入式技术公开课精华笔记:CSDN专版
  • 【数据分享】1:25万水系线路分布数据(辽宁省)
  • Java 课程,每天解读一个简单Java之利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示, * 60分以下
  • imx6ull-驱动开发篇19——linux信号量实验
  • 深度优先搜索和广度优先搜索(重制版)
  • [git] 重配ssh key | 解决冲突
  • 【SpringBoot】MyBatis 动态 sql
  • python——day2
  • 力扣(LeetCode) ——移除链表元素(C语言)
  • NumPy 创建空数组并逐个添加元素的深度解析
  • java理解
  • 解决微前端子应用嵌入后样式被覆盖
  • 深度解析 AS32S601 芯片 CAN Bus Off 机制:从原理到应用的全流程指南
  • 浏览器CEFSharp+X86+win7 之 全球外贸电商平台订单管理(十)
  • 前后端分离项目中Spring MVC的请求执行流程
  • uni-app实战教程 从0到1开发 画图软件 (学会画图)
  • Ceph BlueStore存储引擎详解
  • 【数据结构】并查集:从入门到精通
  • 《Linux基础知识-1》
  • docker-compose搭建 redis 集群
  • 阿里巴巴开源多模态大模型-Qwen-VL系列论文精读(一)
  • VBS 时间函数
  • 基于 libwebsockets 库实现的 WebSocket 服务器类
  • Shader warning in ‘Universal Render Pipeline/Particles/Simple Lit‘
  • provide()函数和inject()函数
  • 【UEFI系列】Super IO
  • VUE+SPRINGBOOT从0-1打造前后端-前后台系统-语音评测
  • 嵌入式学习(day25)文件IO:open read/write close