Sobes.tech
Junior — Middle

Wat is de rol van de @Provides-annotatie in de context van Dependency Injection en waarvoor dient deze?

sobes.tech AI

Antwoord van AI

De annotatie @Provides wordt gebruikt in Dependency Injection-bibliotheken (bijvoorbeeld Dagger in Android) om methoden aan te duiden die afhankelijkheden creëren en leveren. Deze methoden bevinden zich meestal in modules (@Module) en zijn verantwoordelijk voor het maken van objecten die in andere delen van de applicatie geïnjecteerd worden.

Bijvoorbeeld, als je een klasse hebt die afhankelijk is van een service, kun je een methode met @Provides schrijven die deze service aanmaakt en het DI-framework automatisch doorgeeft waar nodig.

Voorbeeld:

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

Zo geeft @Provides expliciet aan hoe afhankelijkheden gemaakt moeten worden die niet automatisch via constructors kunnen worden aangemaakt.