最近在学习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,未来再补上。