@Component和@Named代表同一个bean类

难道一类将作为一个Spring应用程序的Bean同时需要@Component@Named在同一时间?

如果两者都使用,有什么意义?

我尝试在网上搜索并看到这些注释的标准文档,发现它们有些混乱。

最后,如果@Named注释未为bean指定任何名称,那么应用程序将使用哪个名称?

回答:

@Component@Named基本上是相同功能的注释,但它们来自不同的API。

@Component属于Spring

API。它将类标记为自动检测为Bean,并且可以选择允许您为该Bean指定名称(@Component("foo"))。没有显式名称规范,检测到的bean将获得一个从其类名称派生的默认名称。

@Named属于javax.injectAPI。它将类标记为自动检测为Bean,并要求您指定一个名称。

Spring支持这两种API。在同一个类上使用两个注释都没有意义,因为它们提供了相同的功能。

  • 3.10类路径扫描和托管组件

以上是 @Component和@Named代表同一个bean类 的全部内容, 来源链接: utcz.com/qa/418081.html

回到顶部