令人困惑的@Bean 和 @Component

最近在学习spring,前面的blog已经说过了,也是迫不得已。

在了看Spring in Action 前三章之后,好像对Bean有了了解。

但是仔细一想,发现@Bean 和 @Component却傻傻分不清楚了。

题外话,原来一直只以为java的bean就是一大堆get 和 set 方法,不知道什么时候的bean变成了现在的这个样子。

搜索了一下,中文的都没有讲解的特别好的文章来说明两者的区别,但是找到一个英文的文章比较好。

Spring series, part 5: @Component vs @Bean

简单的翻译一下

困惑的Spring, 第五部分: @Component vs @Bean


在这篇文章中,我将研究component和bean之间的区别。尽管他们两个都属于Sping中的beans,但是他们却有不同的用途。 @Component以及他的特殊化(@Controller, @Service 和 @Repository)允许在通过类路径扫描自动发现。@Bean却只能在配置类中明确的声明一个单例的bean。

你可能已经发现组件从Spring 2.5开始已经存在了很长的时间了.这是这些组件类型的用途介绍。就像你一会儿要看到的,所有的组件都以相当的方式处理,子类型只是为了更好的更好的阅读。

组件类型和他们的用途

Annotation Purpose
@Component 加到类路径自动扫描
@Controller 一个web的控制层,在Spring MVC中使用
@Repository 数据管理/存储,企业级应用使用(Dao, DDD)
@Service 提供一个商业逻辑 - 一个无状态的切面

后面的部分,由于还没认真的学习Spring MVC,未来再补上。

你可能感兴趣的:(令人困惑的@Bean 和 @Component)