We will continue our work by introducing a Service component. So, what is a Spring service exactly? An @Service annotated class is Service, originally defined by domain-driven design. That is an operation offered as an interface that stands alone in the model, with no encapsulated state.
Spring offers the following commonly used annotations:
- @Component
- @Controller
- @Repository
- @Service
Let's explain the difference between them.
- @Component is a generalization stereotype for any component managed by Spring Framework.
The following specializations are available: @Repository, @Service, and @Controller. Each is specialized for a different use:
- @Repository annotation is a marker for any class that fulfills the role of a Data Access Object (DAO) of a repository. It also offers the automatic translation of exceptions. We will explain its usage soon...