Tôi đã gặp phải sự cố trong đó trình tự giải trình tự Bean diễn ra. Hiện nay Bean3 từ bên dưới đang chạy một bộ đệm dựa trên bộ nhớ cache hoạt động, và Bean 1 truy vấn đối với bộ nhớ cache mới được tạo ra bằng cách sử dụng Proxy Bean2. Ưu tiên cho Bean3 và Bean 2 được khởi tạo hoàn toàn trước khi Bean1 được khởi tạo, tức là khi thùng chứa Spring xuất hiện. Các bean này nằm trong các JAR riêng biệt và tham chiếu Bean2 vào Bean1 không sử dụng Autowired. Thay vào đó, một trình định vị dịch vụ cho nó một tham chiếu. Chúng tôi đang sử dụng Spring 2.5.2 và không sử dụng XML để tạo hạt đậu. Bất kỳ trợ giúp nào được đánh giá cao!Yêu cầu khởi tạo hạt đậu mùa xuân
JAR1 (dự án Spring)
@Service ("bean3") public class Bean3 implements ApplicationListener { public void onApplicationEvent() { //load data from DB and populate cache } public void getCache(){ //get data from cache }
}
@Service ("bean2") public class Bean2 { @Autowired private Bean3 bean3; private void methodA(){ bean3.getCache(); } }
JAR2 (dự án Non-Xuân)
public class Bean1{ Bean2 bean2 = SpringServiceLocator.getBean("bean2") public void methodB(){ bean2.methodA(); } }
Bạn có đang sử dụng tính năng tự động xây dựng dựa trên cơ sở không? – Scott
Chúng tôi đã bật chế độ tự động phát hiện trong JAR1 để tự động phát. – Noosphere
Nó có khả thi để làm cho Bean1 phụ thuộc vào Bean2 (hoặc tạo ra một chuỗi phụ thuộc?) Khi nào phương thức từ Bean1 được gọi là? –