org.springframework.stereotype

## Annotation Type Controller

-     @Target(value=TYPE)
       @Retention(value=RUNTIME)
       @Documented
       @Component
      public @interface Controller

  Indicates that an annotated class is a "Controller" (e.g. a web controller).

  This annotation serves as a specialization of `@Component`, allowing for implementation classes to be autodetected through classpath scanning. It is typically used in combination with annotated handler methods based on the `RequestMapping` annotation.

  Since:
    2.5
  Author:
    Arjen Poutsma, Juergen Hoeller
  See Also:
    `Component`, `RequestMapping`, `ClassPathBeanDefinitionScanner`

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `String` | `value` The value may indicate a suggestion for a logical component name, to be turned into a Spring bean in case of an autodetected component.

- - ### Element Detail

    - #### value

          @AliasFor(annotation=Component.class)
          public abstract String value

      The value may indicate a suggestion for a logical component name, to be turned into a Spring bean in case of an autodetected component.
      Returns:
        the suggested component name, if any (or empty String otherwise)
      Default:
        ""