gpt4 book ai didi

java - 为什么在Controller注解中使用@Component

转载 作者:行者123 更新时间:2023-11-29 07:52:42 25 4
gpt4 key购买 nike

下面是For Component Interface的源码

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Component {

对于Spring Controller注解如下

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Controller {

为什么要在Controller注解中添加@Component?它的目的是什么?如果我删除这一行会怎样?

我清楚以下用于创建自定义注释的注释类型。

@Documented Whether to put the annotation in Javadocs
@Retention When the annotation is needed
@Target Places the annotation can go
@Inherited Whether subclasses get the annotation

最佳答案

@Controller 是一个@Component(就像@Service@Repository@端点等)。

@Component 在这里用作元注释,以便可以使用组件扫描来拾取它。除此之外,@Controller 是一个特殊的组件,它将具有一些附加功能(Spring MVC 会负责)。如果删除 @Component 注释,组件扫描将无法再检测到它。

您还可以创建自己的基于@Component 的注释,方法是简单地创建您自己的注释并将@Component 放在上面。

关于java - 为什么在Controller注解中使用@Component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19910867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com