Use @Qualifier
@Qualifier @Documented @Retention(RUNTIME) public @interface Named { /** The name. */ String value() default ""; }
@Inject @Named("Database") Storage storageDB; @Inject @Named("Cache") Storage storageCache;
@Module public class AppModule { @Provides @Singleton @Named("Database") public Storage provideDatabaseStorage() { return new Database(); } @Provides @Singleton @Named("Cache") public Storage provideCacheStorage() { return new Cache(); } }