Tôi có một lớp Cache mà khá tốn kém để tạo, nhưng sau đó được thiết lập như là một singleton và được tiêm vào lớp dịch vụ của tôi.Guice: Tránh tiêm lười
@Override
protected void configure() {
bind(Cache.class).in(Singleton.class);
bind(Service.class).to(ServiceImpl.class).in(Singleton.class);
}
@Inject
public ServiceImpl(Cache cache){
this.cache = cache;
}
public Cache(){
//Expensive stuff
}
Vấn đề của tôi là có vẻ như công chúng() trong bộ nhớ cache chỉ thực hiện khi tôi đang cố gắng để truy cập vào một trong những phương thức của nó
Tôi có thể bằng cách nào đó làm cho các đối tượng được xây dựng trên khởi động máy chủ để thay thế?
tuyệt vời, tôi không biết cách áp dụng Giai đoạn. Cảm ơn bạn đã cập nhật câu trả lời – javaNoober