from:web
http://stackoverflow.com/questions/10604298/spring-component-versus-beanspring
http://stackoverflow.com/questions/27091553/are-bean-and-component-annotations-the-same-but-for-different-targets-in-sprinapp
@Component
and @Bean
do two quite different things, and shouldn't be confused.ui
@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.this
@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.spa
看了一些文章,这两个注解能够互换使用,但还有一些使用目的进行区别的。code
@Component
被用在要被自动扫描和装配的类上。component
@Bean
主要被用在方法上,来显式声明要用生成的类。ci
如今项目上,本工程中的类,通常都使用@Component
来生成bean。在把经过web service取得的类,生成Bean时,使用@Bean
和getter方法来生成bean。get