Sobes.tech
Junior — Middle

Qual é o papel da anotação @Provides no contexto da Injeção de Dependências e qual é o seu propósito?

sobes.tech IA

Resposta da IA

A anotação @Provides é usada em bibliotecas de Injeção de Dependências (por exemplo, Dagger no Android) para marcar métodos que criam e fornecem dependências. Esses métodos geralmente estão em módulos (@Module) e são responsáveis por criar objetos que serão injetados noutras partes da aplicação.

Por exemplo, se tiver uma classe que depende de um serviço, pode escrever um método com @Provides que crie esse serviço e permita ao framework de DI passá-lo automaticamente onde for necessário.

Exemplo:

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

Assim, @Provides serve para indicar explicitamente como criar dependências que não podem ser criadas automaticamente através de construtores.