@Component和@bean注解都是管理Java beans,但是各自的目的不同。@Component、 @Controller、@Service、@Repository通过classpath扫描实现实体自动检测。@bean只能用来声明一个单独的bean。
component类型的注解:
注解名称 | 作用 |
通过类路径扫描来自动侦测以及自动装配到Spring容器中,相当于配置文件中的<bean id="" class=""/> | |
标注controller层,注入服务 | |
数据管理器 (DAO, DDD),实现dao访问 | |
标注服务层,用来进行业务的逻辑处理 |
其实component类型之间的注解并没有什么不同,例如:
三者可以实现相同的功能。
*@Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring应用上下文中的bean。通常方法体中包含了最终产生bean实例的逻辑。但是Bean比Component的自定义性更强。可以实现一些Component实现不了的自定义加载类。
翻译自 http://www.tomaszezula.com/2014/02/09/spring-series-part-5-component-vs-bean/