@component @bean区别

from:

http://stackoverflow.com/questions/10604298/spring-component-versus-bean

http://stackoverflow.com/questions/27091553/are-bean-and-component-annotations-the-same-but-for-different-targets-in-sprin

@Component and @Bean do two quite different things, and shouldn‘t be confused.

@Component (and @Service and @Repository) are used to auto-detect and auto-configure beans using classpath scanning. There‘s an implicit one-to-one mapping between the annotated class and the bean (i.e. one bean per class). Control of wiring is quite limited with this approach, since it‘s purely declarative.

@Bean is used to explicitly declare a single bean, rather than letting Spring do it automatically as above. It decouples the declaration of the bean from the class definition, and lets you create and configure beans exactly how you choose.

看了一些文章,这两个注解可以互换使用,但还有一些使用目的进行区别的。

@Component被用在要被自动扫描和装配的类上。

@Bean主要被用在方法上,来显式声明要用生成的类。

现在项目上,本工程中的类,一般都使用@Component来生成bean。在把通过web service取得的类,生成Bean时,使用@Bean和getter方法来生成bean。

时间: 2024-10-10 14:21:04

@component @bean区别的相关文章

Spring中<ref local=""/>与<ref bean=""/>区别

小 Spring中<ref local=""/>与<ref bean=""/>区别 (2011-03-19 19:21:58) 转载▼ 标签: 杂谈   <ref local="xx"/>  用"local"属性指定目标其实是指向同一文件内对应"id"属性值为此"local"值的索引"local"属性的值必须和目标bean的id属性

React.createClass和extends Component的区别

React.createClass和extends Component的区别主要在于: 语法区别 propType 和 getDefaultProps 状态的区别 this区别 Mixins 语法区别 React.createClass import React from 'react'; const Contacts = React.createClass({ render() { return ( <div></div> ); } }); export default Cont

angular5 directive和component的区别

指令分为三类,组件,属性指令和结构性指令 组件(Component directive):UI组件,继承于Directive: 属性指令(Attribute directive):改变组件的样式: 结构指令(Structural directive):改变DOM布局: 属性指令例如 ngClass  ngStyle 结构性指令   *ngIf    *ngFor   *ngSwitch 参考自http://mttcug.cnblogs.com/

小程序template和component的区别

1.小程序中模板template是不能写事件的,既没有js文件 组件component是可以自定义事件,并且组件有自己的生命周期 2,引入到页面的方式不同 template直接在.wxml页面中引入<import src='components/menu/menu.wxml' /> 需要用的地方这样写 <template is="menu" data="{{icons, iconsSwitch, iconBg}}"> </templat

品Spring:bean定义上梁山

认真阅读,收获满满,向智慧又迈进一步... 技术不枯燥,先来点闲聊 先说点好事高兴一下.前段时间看新闻说,我国正式的空间站建设已在进行当中.下半年,长征五号B运载火箭将在海南文昌航天发射场择机将空间站核心舱发射升空.预计用2到3年将空间站建好. 虽然到时你们不让我上去,不过我也为这件事出不了什么力,算扯平了.哈哈,但是我还是会衷心的祝福你. 长征五号火箭首次采用5米大直径的箭体结构,总加注量达到780吨,起飞时共有10台发动机产生1078吨的推力,具备近地轨道25吨.地球同步转移轨道14吨的运载

EJB(企业级JavaBean)之Session Bean

EJB是企业级JavaBean,是一种分布式的具体实现.EJB的企业Bean分为三种,分别是Session Bean(会话Bean).其中有分为Stateless Session Bean(无状态会话Bean).Statefule Session Bean(有状态会话Bean):Message Driven Bean(消息驱动Bean).Persistence(持久化)的Entity Bean(实体Bean).这篇主要讲解Session Bean 1.Session Bean 会话Bean的作用

Spring In [email&#160;protected]注解给Bean命名

package soundsystem; import org.springframework.stereotype.Component; //@Component注解会告诉Spring创建这个类的实例bean(注意,启动Component注解功能需要在xml里面配置) @Component("newName") public class SgtPeppers implements CompactDisc { private String title="Pepper's Lo

【进阶EJB】深入探讨三种Bean(一)——Session Bean

接着,我们继续EJB的学习.经过前两篇博客的介绍,我想大家已经对EJB有了一个初步的认识.但是大家想过没有,我们为什么要用EJB呢? why EJB? 其中一个很重要的原因就是分布式!所谓分布式,就是分布式对象之间相互协作,完成特定的业务功能.通俗一点来说,就是我们不是把事情交给一个人去做,而是把事情划分一下,交给多个人去处理,最后把多个人处理的结果综合在一起得到最终的结果.与此同时,分布式对象之间能够实现分布透明性,亦或是位置透明性,即在客户端代码中无需指定分布式对象的位置:而且分布式对象之间

spring之注解(三)Component

上篇文章中比较详细的介绍了依赖注入的相关注解,尤其是@Autowired.但是我们对bean的定义声明还是放在xml的配置文件中.Spring当然提供了机制可以自动的扫描类路径,自动的向容器注册BeanDefinition.这就是Bean级别的注解.以上机制称为类路径扫描(clsspath-sacn),它是有相关注解(如@Component @Named @Bean)和beanFactoryPostProcessor和BeanPostProcessor实现的.本篇文章我们依次对各个注解进行说明.