Tôi chưa tìm được lời giải thích hay ví dụ về phương pháp tiêm bằng Dagger 2. Ai đó có thể giúp tôi hiểu không?Phương pháp tiêm sử dụng Dagger 2
Ví dụ:
@Inject
public Dinner makeDinner(Pasta pasta, Sauce sauce) {
mPan.add(pasta);
mPan.add(sauce);
return mPan.cookDinner();
}
Vì vậy, nếu tôi chú thích phương pháp của tôi với @Inject
, tôi sửa để giả định rằng các đối số trong phương pháp chữ ký sẽ được tiêm với các đối tượng được xác định từ đồ thị đối tượng? Làm thế nào tôi có thể sử dụng phương pháp này trong mã của tôi sau đó? Nó vẫn sẽ mong đợi tôi cung cấp tất cả các đối số, khi tôi thực hiện cuộc gọi phương thức, loại đánh bại mục đích đó.
UPDATE:
Vì vậy, từ những gì tôi hiểu được đối tượng Dinner sẽ có mặt nếu tôi gọi DinnerComponent.dinner()
, giả sử DinnerComponent của tôi được thiết lập như thế này:
@Component(modules = DinnerModule.class)
public interface DinnerComponent {
Dinner dinner();
}
và DinnerModule của tôi được thiết lập như thế này:
@Module
public class DinnerModule {
public DinnerModule() {}
@Provides
Pasta providePasta() { return new Pasta(); }
@Provides
Sauce provideSauce() { return new Sauce(); }
}
Điều gì xảy ra nếu tôi muốn bữa tối của mình được chiên? Vì vậy, hãy giới thiệu phương pháp này:
@Inject
public Dinner makeDinner(Pasta pasta, Sauce sauce) {
mPan.add(pasta);
mPan.add(sauce);
return mPan.fryDinner();
}
Làm thế nào tôi có thể xác định trong thành phần mà bữa ăn tối là đó?
Tôi không chắc bạn đã lấy ví dụ này ở đâu, nhưng nhìn vào nó tôi nghĩ bạn có thể muốn đọc về tiêm hỗ trợ. –
Bạn có thể đã sử dụng chú thích @Named. –