spring中的@Bean是否一定要与@Configuration一起用
在使用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一起用的更多相关文章
- JSP访问Spring中的bean
JSP访问Spring中的bean <%@page import="com.sai.comment.po.TSdComment"%> <%@page import ...
- 传统javabean与spring中的bean的区别
javabean已经没人用了 springbean可以说是javabean的发展, 但已经完全不是一回事儿了 用处不同:传统javabean更多地作为值传递参数,而spring中的bean用处几乎无处 ...
- 1.2(Spring学习笔记)Spring中的Bean
一.<Bean>的属性及子元素 在1.1中我们对<Bean>有了初步的认识,了解了一些基本用法. 现在我们进一步理解<Bean>属性及子元素. 我们先来看下< ...
- spring扩展点之二:spring中关于bean初始化、销毁等使用汇总,ApplicationContextAware将ApplicationContext注入
<spring扩展点之二:spring中关于bean初始化.销毁等使用汇总,ApplicationContextAware将ApplicationContext注入> <spring ...
- 第2章 Spring中的Bean
2.1 Bean的配置 Bean本质是Java中的类.Spring可以被看做一个大型工厂,这个工厂的作用就是生产和管理Spring容器zho中的Bean.想在项目中使用这个工厂,就需要对Spring的 ...
- spring 中的 bean 是线程安全的吗?
spring 中的 bean 是线程安全的吗? Spring 不保证 bean 的线程安全. 默认 spring 容器中的 bean 是单例的.当单例中存在竞态条件,即有线程安全问题.如下面的例子 计 ...
- Spring 中的bean 是线程安全的吗?
结论: 不是线程安全的 Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体sco ...
- spring(四):spring中给bean的属性赋值
spring中给bean的属性赋值 xml文件properties标签设置 <bean id="student" class="com.enjoy.study.ca ...
- Spring中与bean有关的生命周期
前言 记得以前的时候,每次提起Spring中的bean相关的生命周期时,内心都无比的恐惧,因为好像有很多,自己又理不清楚,然后看网上的帖子,好像都是那么一套,什么beanFactory啊,aware接 ...
随机推荐
- Window.scrollTo()
摘要 滚动到文档中的某个坐标. 语法 window.scrollTo(x-coord,y-coord ) window.scrollTo(options) 参数 x-coord 是文档中的横轴坐标. ...
- 用stringstream可以用来分割空格、tab、回车换行隔开的字符串:
#include <iostream> #include <sstream> #include <vector> using namespace std; int ...
- vue小问题库
引入vue组件命名时,不用特殊标签,比如<head>,不然会按特殊标签处理
- C# Note20: 制作延时改变显示的标题栏
前言 在使用wpf构建一个窗体时,其中有这样一个功能,在保存数据或加载数据时,我们希望在改变标题栏的显示以标志当前保存成功的状态或者加载数据的名称信息,而且标题信息更新显示几秒后,再恢复到默认的状态. ...
- PHP人工智能库
PHP虽然不是人工智能语言,但做人工智能理论上没问题,下面本人整理了一些PHP人工智能库.1.NLPTools(http://php-nlp-tools.com/)NLPTools是一个PHP自然语言 ...
- [转]Java 的强引用、弱引用、软引用、虚引用
1.强引用(StrongReference) 强引用是使用最普遍的引用.如果一个对象具有强引用,那垃圾回收器绝不会回收它.如下: Object o=new Object(); // 强引用 当内存空间 ...
- Lodop打印控件 超文本自动分页
Lodop打印控件打印html超文本,通常传入一个超文本内容可能会超过纸张,如果要拆分每页显示哪些然后手动分页比较麻烦,Lodop中的超文本都有自动分页的特点.自动分页的依据:1.超文本超过设置的打印 ...
- react事件绑定,事件传参,input单向数据绑定
import React, { Component } from 'react'; class New extends Component { constructor(props){ super(pr ...
- Jira的搭建
一.环境准备 jira7.2的运行是依赖java环境的,也就是说需要安装jdk并且要是1.8以上版本,如下: java -version 除此之外,我们还需要为jira创建对应的数据库.用户名和密码, ...
- initial
摘自http://blog.csdn.net/liming0931/article/details/7039680 首先说说结构化过程语句,在verilog中有两种结构化的过程语句:initial语句 ...