Android Library Dagger 2: Dependency Injection in Applications Connecting @Modules with @Inject


The connection between the provider of dependencies, @Module, and the classes requesting them through @Inject is made using @Component, which is an interface:

import javax.inject.Singleton;
import dagger.Component;

@Component(modules = {VehicleModule.class})
public interface VehicleComponent {
    Vehicle provideVehicle();

For the @Component annotation, you have to specify which modules are going to be used. In this example VehicleModule is used, which is defined in this example. If you need to use more modules, then just add them using a comma as a separator.