@Component和@Bean的区别
最近学习spring的时候,一直搞不清这两个的区别,网上写的是在太官方了,小白太难了。于是自己整理一下。
首先,相同点,这两者目的都是注册bean到spring中因此都可以通过@Autowried装配,比如:
@Autowiredprivate Student student;
先看看两者的作用:
@Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean。
@Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring应用上下文中的bean。通常方法体中包含了最终产生bean实例的逻辑(啥意思下面解释)。
于是区别来了:①我们知道Component,Controller,Service,Repository都是可以起到相同作用的,都是在类上方添加注解,而@Bean是在配置类中使用,也就是加了@Configuration的类里面的方法上面使用
②@Component四兄弟是通过componentscan由spring容器来找到类路径自动装配到容器中@Bean呢是我们通过自定义方法产生的一个产生bean实例的逻辑。常见用法:人家的源码我们没法改,所以没办法在源码的类上加@Component。于是,我们可以通过方法上加@Bean注解,把第三方的类放入容器,比如把jbdc里的connection对象放入容器里:
@Bean
public Connection getConnection(){try {Class.forName("com.mysql.cj.jdbc.Driver");return DriverManager.getConnection("jdbc:mysql:///mysql", "root", "root");} catch (Exception exception) {return null;}
}
③@Bean方法里面如果跟参数,这个参数是会根据括号里的对象类型从容器里面找这个对象。
@Bean(name = "connection")public Connection getConnection(StudentService studentService){System.out.println(studentService);studentService.findStudentById(1);
@Component和@Bean的区别相关推荐
- @Component 和 @Bean 的区别
Spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean. 完成这两个动作有三种方式,一种是使用自动配置的方式.一种是使用JavaConfig的方式,一种就是使用XML配置的 ...
- @Component,@Bean
注解分类 @Controller: controller控制器层(注入服务),用于标注控制层组件 @Service:service服务层(注入dao),用于标注业务层组件 @Repository:da ...
- [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别
要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...
- 春季:@Component与@Bean
本文翻译自:Spring: @Component versus @Bean I understand that @Component annotation was introduced in spri ...
- 歪解stateful session bean 和 stateless session bean的区别。
歪解stateful session bean 和 stateless session bean的区别. 无状态bean嘛,比如在家里你要上厕所,无状态bean每次提供得是全新的马桶,有状态提供得是上 ...
- 【Spring】FactoryBean和普通Bean的区别
[提问] Spring中所说的FactoryBean和普通Bean的区别有什么区别? [解答] 具体区别: 维度不同 Bean只是一个概念,统称所有被SpringIOC工厂(容器)管理的对象,硬要说也 ...
- SSM-Spring-Spring装配Bean-通过注解装配Bean-使用@Component装配Bean
SSM-Spring-Spring装配Bean-通过注解装配Bean-使用@Component装配Bean 使用这种方式可以减少XML的配置,注解功能更加强大,可以实现XML的功能,还有自动装配的 ...
- Component和PureComponent的区别
文章目录 Component和PureComponent的区别 介绍 区别点: PureComponent缺点 PureComponent优势 为什么PureComponent比较复杂的数据结构,可能 ...
- java合集系列之pring@Component @Repository@Service的区别
问题 在spring集成的框架中,注解在类上的@Component,@Repository,@Service等注解能否被互换?或者说这些注解有什么区别? 回答1 引用spring的官方文档中的一段描述 ...
最新文章
- 设计模式——外观模式
- 网站优化有三个重点不能忽视
- oracle触发器修改同一张表,oracle触发器中对同一张表进行更新再查询时,需加自制事务...
- 使用Apache搭建个人用户主页
- MongoClient类参考文档
- ruby 数组元素替换_从Ruby中的集合中删除并替换元素
- max unity 方向_在2D游戏中实现方向光照
- Android 自定义RecyclerView 实现真正的Gallery效果
- graphpad两组t检验_Graphpad 分析教程 | 手把手教你玩转独立样本 t 检验
- 万能网卡驱动程序下载,适用于Win7_Win8.x平台
- 读书笔记—《雷达信号处理基础》第一章 雷达系统与信号处理概述(2)
- android高仿ios控制中心,仿 iOS 11原生控制中心
- php apache mpm,RHEL 7 Apache MPM 配置
- 计算机硬件大型作业报告,计算机硬件技术大作业报告 .doc
- 现代处理器的设计思想
- 计算机作业微波炉工作的原理,微波炉工作电路原理图及功能图解
- 如何在Ubuntu系统下使用扫描仪(by quqi99)
- excel将大表分解成小表,将小表合成一个大表
- 在《自动化学报》搜无人机关键词可以看到这方面的论文
- 文言文编程火了,可我完全学不懂
热门文章
- 传世私服服务器列表不显示,关于传世私服的人物名字显示设置详解
- 题目:求1+2!+3!+...+20!的和
- ZBB – ZERO Bug Bounce
- bootstrap的引入和使用
- Python爬虫(二)——多线程下载壁纸图片(星月设计网)
- 中国信号调理器行业市场供需与战略研究报告
- 基于springboot+mybatis+mysql+html企业人事管理系统
- CST shape tools
- css修改谷歌浏览器和火狐浏览器的滚动条样式
- 使用MemoryStream类读写内存