@Component和@Named代表同一个bean类
难道一类将作为一个Spring应用程序的Bean同时需要@Component
和@Named
在同一时间?
如果两者都使用,有什么意义?
我尝试在网上搜索并看到这些注释的标准文档,发现它们有些混乱。
最后,如果@Named
注释未为bean指定任何名称,那么应用程序将使用哪个名称?
回答:
@Component
和@Named
基本上是相同功能的注释,但它们来自不同的API。
@Component
属于Spring
API。它将类标记为自动检测为Bean,并且可以选择允许您为该Bean指定名称(@Component("foo")
)。没有显式名称规范,检测到的bean将获得一个从其类名称派生的默认名称。
@Named
属于javax.inject
API。它将类标记为自动检测为Bean,并要求您指定一个名称。
Spring支持这两种API。在同一个类上使用两个注释都没有意义,因为它们提供了相同的功能。
- 3.10类路径扫描和托管组件
以上是 @Component和@Named代表同一个bean类 的全部内容, 来源链接: utcz.com/qa/418081.html