@Component — универсальная стереотипная аннотация, которая указывает, что класс является компонентом Spring. 1 Остальные аннотации — это производные от @Component, они не добавляют поведения и технически в рамках ядра Spring Framework работают так же. 3
Главное отличие производных аннотаций заключается в их семантике, логической роли компонентов: 3
Таким образом, основное назначение аннотации @Component — обозначение класса как компонента, а остальные аннотации определяют конкретную роль класса в рамках приложения. 14