Tất cả đều là stereotype annotation kích hoạt component scanning và tạo Spring bean. @Component: generic, đánh dấu class là Spring bean. @Controller: chuyên biệt cho web controller xử lý HTTP request. @Service: chuyên biệt cho business logic layer. @Repository: chuyên biệt cho data access, tự động dịch database exception sang Spring DataAccessException.
Về mặt kỹ thuật tương đương nhau, nhưng sử dụng đúng annotation giúp code tự tài liệu hóa và rõ ý định thiết kế.