@Component和
@Named基本上是相同功能的注释,但它们来自不同的API。
@Component属于Spring
API。它将类标记为自动检测为Bean,并且可以选择允许您为该Bean指定名称(
@Component("foo"))。没有显式名称规范,检测到的bean将获得一个从其类名称派生的默认名称。@Named属于
javax.injectAPI。它将类标记为自动检测为Bean,并要求您指定一个名称。
Spring支持这两种API。在同一个类上使用两个注释都没有意义,因为它们提供了相同的功能。
也可以看看:
- 3.10类路径扫描和托管组件



