# Uses of Annotation Interface
org.springframework.stereotype.Component

Packages that use Component
Package
Description
org.springframework.context.annotation
Annotation support for the Application Context, including JSR-250 "common" annotations, component-scanning, and Java-based metadata for creating Spring-managed objects.
org.springframework.stereotype
Annotations denoting the roles of types or methods in the overall architecture (at a conceptual, rather than implementation, level).

## Uses of Component in org.springframework.context.annotation

Classes in org.springframework.context.annotation with annotations of type Component
Modifier and Type
Class
Description
`@interface`
`Configuration`
Indicates that a class declares one or more `@Bean` methods and may be processed by the Spring container to generate bean definitions and service requests for those beans at runtime, for example:

## Uses of Component in org.springframework.stereotype

Classes in org.springframework.stereotype with annotations of type Component
Modifier and Type
Class
Description
`@interface`
`Controller`
Indicates that an annotated class is a "Controller" (for example, a web controller).
`@interface`
`Repository`
Indicates that an annotated class is a "Repository", originally defined by Domain-Driven Design (Evans, 2003) as "a mechanism for encapsulating storage, retrieval, and search behavior which emulates a collection of objects".
`@interface`
`Service`
Indicates that an annotated class is a "Service", originally defined by Domain-Driven Design (Evans, 2003) as "an operation offered as an interface that stands alone in the model, with no encapsulated state."