@Component 和 @Named 都用于同一个 bean 类

2023-04-05Java开发问题
10

本文介绍了@Component 和 @Named 都用于同一个 bean 类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

在 Spring 应用程序中充当 bean 的类是否同时需要 @Component@Named?

Does a class which will act as a bean in a Spring application require both @Component and @Named at the same time?

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

What is the significance if both are used so?

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

I tried searching the net as well as saw the standard documentation of these annotations and found them a bit confusing.

如果 @Named 注释没有为 bean 指定任何名称,那么最终应用程序会采用哪个名称?

Finally which name is taken by the application if the @Named annotation does not specify any name for the bean?

推荐答案

@Component@Named 是基本上做同样事情的注解,但来自不同的 API.

@Component and @Named are annotations that basically do the same thing, but come from different APIs.

@Component 属于 Spring API.它将要自动检测为 bean 的类标记为可以选择允许您为该 bean 指定一个名称 (@Component("foo")).如果没有明确的名称规范,检测到的 bean 将获得一个从其类的名称派生的默认名称.

@Component belongs to Spring API. It marks class to be autodetected as a bean and optionally allows you to specify a name for that bean (@Component("foo")). Without explicit name specification detected bean will get a default name derived from the name of its class.

@Named 属于 javax.inject API.它将类标记为自动检测为 bean,并要求您指定名称.

@Named belongs to javax.inject API. It marks class to be autodetected as a bean and requires you to specify a name.

Spring 支持这两种 API.在同一个类中使用这两个注解是没有意义的,因为它们提供相同的功能.

Spring supports both these APIs. It doesn't make sense to use both annotations at the same class since they provide the same functionality.

另请参阅:

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

这篇关于@Component 和 @Named 都用于同一个 bean 类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

如何使用 JAVA 向 COM PORT 发送数据?
How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)...
2024-08-25 Java开发问题
21

如何使报表页面方向更改为“rtl"?
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)...
2024-08-25 Java开发问题
19

在 Eclipse 项目中使用西里尔文 .properties 文件
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)...
2024-08-25 Java开发问题
18

有没有办法在 Java 中检测 RTL 语言?
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)...
2024-08-25 Java开发问题
11

如何在 Java 中从 DB 加载资源包消息?
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)...
2024-08-25 Java开发问题
13

如何更改 Java 中的默认语言环境设置以使其保持一致?
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)...
2024-08-25 Java开发问题
13