Sobes.tech
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.