2010-07-14 28 views
6

JSR-250 nói rằng tất cả các phương pháp @Resource chú thích sẽ được gọi trước khi phương pháp @PostConstruct ..Tất cả @Resource tiêm trước khi bất kỳ @PostConstruct lại

Câu hỏi của tôi là:

Điều đó có nghĩa rằng tất cả @Resource phương pháp chú thích trên tất cả các bean trong một ngữ cảnh sẽ được gọi trước khi bất kỳ phương thức chú thích @PostConstruct nào được gọi? Hay nói cách khác, phương pháp @PostConstruct có thể được gọi khi phụ thuộc của nó đã được tiêm ngay cả khi các hạt khác trong ngữ cảnh vẫn chưa có sự phụ thuộc vào tiêm?

Trân trọng, Tim.

Trả lời

9

Đảm bảo rằng khi một số đậu được cho là @PostConstruct được gọi, tất cả các trường @Resource của nó sẽ được tiêm. Nếu bất kỳ loại tiêm nào trong số đó được tự đậu với @Resource@PostConstruct của riêng chúng, thì chúng sẽ được gọi. Nói cách khác, vào thời điểm bất kỳ @PostConstruct nào được gọi, nó được đảm bảo rằng tất cả các phụ thuộc của nó đã được khởi tạo hoàn toàn.

Có thể, và trong thực tế có khả năng, mà BeanA sẽ được xây dựng và khởi tạo qua @PostConstruct trước BeanB thậm chí đã được khởi tạo, nếuBeanB không có người phụ thuộc được thể hiện trên BeanA.

+0

Cảm ơn Kenny :) Điều đó giải thích. –

Các vấn đề liên quan