Sobes.tech
Junior — Middle

Mi az @Provides annotáció szerepe a Dependency Injection kontextusában, és milyen célt szolgál?

sobes.tech MI

Válasz az MI-től

A @Provides annotációt függőség-injektálási könyvtárakban (például Dagger Androidban) használják arra, hogy jelezzék azokat a módszereket, amelyek függőségeket hoznak létre és biztosítanak. Ezek a módszerek általában @Module modulokban találhatók, és felelősek azoknak az objektumoknak a létrehozásáért, amelyeket más részekbe injektálnak.

Például, ha van egy osztályod, amely egy bizonyos szolgáltatásra támaszkodik, írhatod a @Provides-szal ellátott módszert, amely létrehozza ezt a szolgáltatást, és lehetővé teszi a DI keretrendszer számára, hogy automatikusan átadja oda, ahol szükség van rá.

Példa:

@Module
public class NetworkModule {
    @Provides
    Retrofit provideRetrofit() {
        return new Retrofit.Builder()
            .baseUrl("https://api.example.com")
            .build();
    }
}

Így a @Provides explicit módon megmutatja, hogyan kell létrehozni azokat a függőségeket, amelyeket nem lehet automatikusan a konstruktorokon keresztül létrehozni.