版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/little_newBee/article/details/80383691

在使用spring的过程中,一直都看到写代码时@Bean总是与@Configuration一起使用,那么是否真的是使用@Bean一定需要@Configuration呢?? 查了很多资料,终于找到了。鉴于大部分国内查到的资料不没有关于这个问题的解释,即一篇博客记录下来,有同类疑惑的人可以看一下。

@Bean作用于方法上,想单独使用肯定是不可能的了,想想也知道,起码要扫描到类嘛(抛除配置文件方式,只说单纯在使用注解的情况),因此在需要在该类上使用@Component/@Configuration/@Service 等注解,@Service这种注解其实只是说在可读性上增加了,一般要使用@Bean时,不会用这类注解标注,毕竟没人在service类中写这种方法吧……,因此一般见过的就是两种@Component/@Configuration,那么区别在哪里呢?? 
网上找到的英文解释我给翻译一下(英语太烂,凑合看……):

上面这个小例子是从网上截取的一个图片,希望原作者不要打我……。 
注意箭头指向,在一个@Bean标注的方法中,调用了另一个@Bean注释的方法。 
现在是使用@Configuration注解,此时调用dataSource() 方法返回的是被Spring管理的单例Bean。 
如果换做是@Component 注解,那么调用了dataSource() 方法返回的对象是执行这个方法返回的对象实例,而不是被spring管理的对象。
这就是差别所在。

spring中的@Bean是否一定要与@Configuration一起用的更多相关文章

  1. JSP访问Spring中的bean

    JSP访问Spring中的bean <%@page import="com.sai.comment.po.TSdComment"%> <%@page import ...

  2. 传统javabean与spring中的bean的区别

    javabean已经没人用了 springbean可以说是javabean的发展, 但已经完全不是一回事儿了 用处不同:传统javabean更多地作为值传递参数,而spring中的bean用处几乎无处 ...

  3. 1.2(Spring学习笔记)Spring中的Bean

    一.<Bean>的属性及子元素 在1.1中我们对<Bean>有了初步的认识,了解了一些基本用法. 现在我们进一步理解<Bean>属性及子元素. 我们先来看下< ...

  4. spring扩展点之二:spring中关于bean初始化、销毁等使用汇总,ApplicationContextAware将ApplicationContext注入

    <spring扩展点之二:spring中关于bean初始化.销毁等使用汇总,ApplicationContextAware将ApplicationContext注入> <spring ...

  5. 第2章 Spring中的Bean

    2.1 Bean的配置 Bean本质是Java中的类.Spring可以被看做一个大型工厂,这个工厂的作用就是生产和管理Spring容器zho中的Bean.想在项目中使用这个工厂,就需要对Spring的 ...

  6. spring 中的 bean 是线程安全的吗?

    spring 中的 bean 是线程安全的吗? Spring 不保证 bean 的线程安全. 默认 spring 容器中的 bean 是单例的.当单例中存在竞态条件,即有线程安全问题.如下面的例子 计 ...

  7. Spring 中的bean 是线程安全的吗?

    结论: 不是线程安全的 Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体sco ...

  8. spring(四):spring中给bean的属性赋值

    spring中给bean的属性赋值 xml文件properties标签设置 <bean id="student" class="com.enjoy.study.ca ...

  9. Spring中与bean有关的生命周期

    前言 记得以前的时候,每次提起Spring中的bean相关的生命周期时,内心都无比的恐惧,因为好像有很多,自己又理不清楚,然后看网上的帖子,好像都是那么一套,什么beanFactory啊,aware接 ...

随机推荐

  1. gulp项目和webpack项目在浏览器中查看的方式

    在存在.git的目录下,按住shift+左键,打开命令行或者使用git Bash Gulp: 输入gulp dev 本地起一个服务器,在项目中找到gulp.js,然后找本地服务器,找到host和por ...

  2. 5 Expressing future time

    1 英语中表达将来的时间有四种主要方式:be going to, will, 现在进行时,一般现在时. 2 Make a prediction. 若要预测将来, 可以使用 be going to 或者 ...

  3. day 7-14 数据库完整性约束

    一. 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分为: PRIMARY KEY 标示该字段为表的主键,可以唯一的标示记录 FOREIGN KEY 标示该 ...

  4. 剑指Offer(9)

    题目: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解法: 要考虑到底数为0,指数为负数的情况,这道题主要考的是对边界值的思考. p ...

  5. git客户端下载 和安装

    网址  https://git-scm.com/download/win 点击next 说明: (1)图标组件(Addition icons) : 选择是否创建桌面快捷方式. (2)桌面浏览(Wind ...

  6. python pip安装找不到指定包的时候怎么解决

    在该网址上下载对应版本的包然后安装即可. https://www.lfd.uci.edu/~gohlke/pythonlibs/

  7. Json dump

    json 模块提供了一种很简单的方式来编码和解码JSON数据. 其中两个主要的函数是 json.dumps() 和 json.loads() , 要比其他序列化函数库如pickle的接口少得多. 下面 ...

  8. SCP传送文件时提示No ECDSA host key is known forx.x.x.x and you have requested strict checking.问题的解决办法

    在使用SCP向其他设备传送文件时,打印如下错误: No ECDSA host key is known for x.x.x.x and you have requested strict checki ...

  9. DBX error:Driver could not be properly initialized .... 解决办法

    系统: win7 64位+ MySql 将libmysql.dll和Dbxmys.dll 拷到 C:\Windows\SysWOW64 目录. ( 64位系统)     32位则拷到  c:\wind ...

  10. Appium之开发计算器自动化测试脚本Demo

    1.依赖包 <!-- https://mvnrepository.com/artifact/io.appium/java-client --> <dependency> < ...