In addition to providing @ component annotations, spring 2.5 also defines several annotations with special semantics: @ repository, @ service, and @ controller. In the current spring version, the three annotations are equivalent to @ component, but from the annotation class name, it is easy to see that the three annotations correspond to the persistence layer, business layer, and control layer (web layer) respectively.
These three annotations are just a representation of the hierarchical concept and are not actually different in code.
Therefore, if a web application uses a classic layer-3 hierarchy, we recommend that you use @ repository, @ service, and @ controller to annotate classes in the hierarchy at the persistence layer, business layer, and control layer, and use @ component to annotate those neutral classes.
For specific examples, see the spring annotation example.