@Bean: đặt trên method trong @Configuration class, method trả về object được thêm vào container.
- Kiểm soát tường minh quá trình tạo bean (logic khởi tạo phức tạp).
@Component: đặt trên class, Spring tự instantiate qua default constructor. - Ưu tiên
@Beancho: thư viện bên thứ ba (không sửa được source), khởi tạo phức tạp, conditional bean. - Ưu tiên
@Componentcho: class của ứng dụng, auto-detection đơn giản. - Cả hai tạo singleton bean theo mặc định.