@Target(value=TYPE) @Retention(value=RUNTIME) @Documented @Component public @interface Repository
Teams implementing traditional Java EE patterns such as "Data Access Object" may also apply this stereotype to DAO classes, though care should be taken to understand the distinction between Data Access Object and DDD-style repositories before doing so. This annotation is a general-purpose stereotype and individual teams may narrow their semantics and use as appropriate.
A class thus annotated is eligible for Spring
when used in conjunction with a
PersistenceExceptionTranslationPostProcessor. The annotated class is also clarified as
to its role in the overall application architecture for the purpose of tooling,
As of Spring 2.5, this annotation also serves as a specialization of
@Component, allowing for implementation classes to be autodetected
through classpath scanning.
@AliasFor(annotation=Component.class) public abstract String value