Như trong tiêu đề ở trên, tôi đang bối rối về ưu nhược điểm giữa việc tiêm applicationContext bằng cách trực tiếp @Autowired annnotation hoặc thực hiện giao diện ApplicationContextAware trong một bean mùa xuân đơn.Thực hành tốt nhất của ứng dụng tiêmTiếp theo trong Spring3
Bạn thích cái nào trong trường hợp nào và tại sao? Cảm ơn.
Cảm ơn. Nhưng nếu đậu, mà applicationContext đang được tiêm vào nó, đã là một bean mùa xuân chưa? Bạn có nghĩ rằng nó vẫn là một sự vi phạm? Btw, thực sự là hầu hết các loại đậu tôi có là một hạt đậu mùa xuân trong ứng dụng của tôi, đó là lý do tại sao tôi chỉ là một chút nhầm lẫn về đề cập của bạn: 'buộc ứng dụng của bạn vào khung Spring'. Có đúng trong mọi trường hợp hay trong trường hợp chỉ khi tôi có một ứng dụng được phân tách một phần khỏi khung công tác mùa xuân và tôi sử dụng mùa xuân chỉ cho một số loại đậu để đạt được một số chức năng? – Javatar
Điều đó tùy thuộc vào những gì bạn gọi là Spring Bean. Nếu bạn có đồng bằng Java Beans được quản lý bởi Spring từ bên ngoài, ứng dụng của bạn không bị ràng buộc với Spring và có thể bạn sẽ mất ít hơn một ngày để chuyển sang một Container IOC khác. Đó là một cực đoan (trong đó, được cấp, bạn sẽ hầu như không bao giờ tìm thấy), cực đoan khác là những gì bạn đang mô tả: tiêm phụ thuộc thông qua dịch vụ định vị, hoặc như tôi gọi nó: Inversion of Inversion of Control. Chỉ cần thử và làm điều đó chỉ khi bạn thực sự phải. –
Lý do chính dẫn đến câu hỏi của tôi là tiêm một hạt đậu nguyên mẫu vào một chiếc đậu có vỏ đơn. Đó là lý do tại sao tôi phải lấy bean từ applicationContext (hoặc BeanFactory) cho mỗi phương thức gọi. Btw, mỗi lớp theo gói gốc của tôi (có nghĩa là tất cả các lớp) đều nằm dưới sự kiểm soát mùa xuân. Vì vậy, câu hỏi cuối cùng, bạn có thể giải thích chi tiết hơn về bạn đề cập đến: 'nó ngữ nghĩa làm rõ nó là gì.'? Cảm ơn bạn rất nhiều trước một lần nữa. – Javatar