最近学习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的区别相关推荐

  1. @Component 和 @Bean 的区别

    Spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean. 完成这两个动作有三种方式,一种是使用自动配置的方式.一种是使用JavaConfig的方式,一种就是使用XML配置的 ...

  2. @Component,@Bean

    注解分类 @Controller: controller控制器层(注入服务),用于标注控制层组件 @Service:service服务层(注入dao),用于标注业务层组件 @Repository:da ...

  3. [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别

    要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...

  4. 春季:@Component与@Bean

    本文翻译自:Spring: @Component versus @Bean I understand that @Component annotation was introduced in spri ...

  5. 歪解stateful session bean 和 stateless session bean的区别。

    歪解stateful session bean 和 stateless session bean的区别. 无状态bean嘛,比如在家里你要上厕所,无状态bean每次提供得是全新的马桶,有状态提供得是上 ...

  6. 【Spring】FactoryBean和普通Bean的区别

    [提问] Spring中所说的FactoryBean和普通Bean的区别有什么区别? [解答] 具体区别: 维度不同 Bean只是一个概念,统称所有被SpringIOC工厂(容器)管理的对象,硬要说也 ...

  7. SSM-Spring-Spring装配Bean-通过注解装配Bean-使用@Component装配Bean

    SSM-Spring-Spring装配Bean-通过注解装配Bean-使用@Component装配Bean ​ 使用这种方式可以减少XML的配置,注解功能更加强大,可以实现XML的功能,还有自动装配的 ...

  8. Component和PureComponent的区别

    文章目录 Component和PureComponent的区别 介绍 区别点: PureComponent缺点 PureComponent优势 为什么PureComponent比较复杂的数据结构,可能 ...

  9. java合集系列之pring@Component @Repository@Service的区别

    问题 在spring集成的框架中,注解在类上的@Component,@Repository,@Service等注解能否被互换?或者说这些注解有什么区别? 回答1 引用spring的官方文档中的一段描述 ...

最新文章

  1. 设计模式——外观模式
  2. 网站优化有三个重点不能忽视
  3. oracle触发器修改同一张表,oracle触发器中对同一张表进行更新再查询时,需加自制事务...
  4. 使用Apache搭建个人用户主页
  5. MongoClient类参考文档
  6. ruby 数组元素替换_从Ruby中的集合中删除并替换元素
  7. max unity 方向_在2D游戏中实现方向光照
  8. Android 自定义RecyclerView 实现真正的Gallery效果
  9. graphpad两组t检验_Graphpad 分析教程 | 手把手教你玩转独立样本 t 检验
  10. 万能网卡驱动程序下载,适用于Win7_Win8.x平台
  11. 读书笔记—《雷达信号处理基础》第一章 雷达系统与信号处理概述(2)
  12. android高仿ios控制中心,仿 iOS 11原生控制中心
  13. php apache mpm,RHEL 7 Apache MPM 配置
  14. 计算机硬件大型作业报告,计算机硬件技术大作业报告 .doc
  15. 现代处理器的设计思想
  16. 计算机作业微波炉工作的原理,微波炉工作电路原理图及功能图解
  17. 如何在Ubuntu系统下使用扫描仪(by quqi99)
  18. excel将大表分解成小表,将小表合成一个大表
  19. 在《自动化学报》搜无人机关键词可以看到这方面的论文
  20. 文言文编程火了,可我完全学不懂

热门文章

  1. 传世私服服务器列表不显示,关于传世私服的人物名字显示设置详解
  2. 题目:求1+2!+3!+...+20!的和
  3. ZBB – ZERO Bug Bounce
  4. bootstrap的引入和使用
  5. Python爬虫(二)——多线程下载壁纸图片(星月设计网)
  6. 中国信号调理器行业市场供需与战略研究报告
  7. 基于springboot+mybatis+mysql+html企业人事管理系统
  8. CST shape tools
  9. css修改谷歌浏览器和火狐浏览器的滚动条样式
  10. 使用MemoryStream类读写内存