There are a few reasons:
- It’s easier to target pointcuts with more specific annotations. Do not underestimate the usefulness of this!
- The
@Repositoryannotation carries with it some additional functionality: it causes exceptions to be wrapped up asDataAccessExceptions. - The
@Serviceannotation may gain additional semantics in the future but it’s not happened yet…