Junior — Middle
Koja je uloga anotacije @Provides u kontekstu injekcije zavisnosti i čemu ona služi?
sobes.tech АИ
Одговор од АИ
Anotacija @Provides se koristi u bibliotekama za injekciju zavisnosti (npr. Dagger u Androidu) za označavanje metoda koji kreiraju i obezbeđuju zavisnosti. Takvi metodi se obično nalaze u modulima (@Module) i odgovorni su za kreiranje objekata koji će biti injektovani u druge delove aplikacije.
Na primer, ako imate klasu koja zavisi od određene usluge, možete napisati metod sa @Provides koji će kreirati tu uslugu i omogućiti DI okviru da je automatski prosledi tamo gde je potrebna.
Primer:
@Module
public class NetworkModule {
@Provides
Retrofit provideRetrofit() {
return new Retrofit.Builder()
.baseUrl("https://api.example.com")
.build();
}
}
Na ovaj način, @Provides služi za eksplicitno navođenje kako kreirati zavisnosti koje ne mogu biti automatski kreirane putem konstruktora.