groovy
implementation 'com.google.dagger:dagger:2.x'
annotationProcessor 'com.google.dagger:dagger-compiler:2.x'
implementation 'com.google.dagger:dagger-android:2.x'
annotationProcessor 'com.google.dagger:dagger-android-processor:2.x'
@Singleton
@Component(modules = {AndroidInjectionModule.class, AppModule.class, ActivityBuilderModule.class})
public interface AppComponent extends AndroidInjector<MyApplication> {
@Component.Builder
interface Builder {
@BindsInstance
Builder application(Application application);
AppComponent build();
}
void inject(MyApplication application);
}
@Module
public class AppModule {
@Provides
@Singleton
static ApiService provideApiService() {
return new ApiService();
}
}
@Module
public abstract class ActivityBuilderModule {
@ContributesAndroidInjector
abstract MainActivity contributeMainActivity();
}
public class MainActivity extends AppCompatActivity {
@Inject
ApiService apiService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}