В моем коде, в модуле пакета, я использую привязку, используя @Provides в моем пакете Google Guice для привязки. Это мой рабочий код.
Но я хочу оптимизировать свой код, используя bind вместо @provides. Я пробовал разные способы, но получал разные исключения. Может кто-нибудь предложить мне решение? Спасибо
@Provides
@Singleton
@Named(MY_CONSTANT)
public MyObjectRepository myObjectRepository(final DatabaseRepository<ObjectDAO> objectDAODatabaseRepository,
final DefaultMyObjectDAOTranslator defaultMyObjectDAOTranslator) {
return new DynamoDBMyRepository(myDAODatabaseRepository, defaultMyDAOTranslator);
}
@Provides
@Singleton
public DatabaseRepository<MyObjectDAO> myObjectDAODatabaseRepository(final DAOWriter<MyObjectDAO> daoWriter,
final DAORetriever<MyObjectDAO> daoRetriever) {
return new DynamoDBRepository<>(daoWriter, daoRetriever);
}
@Provides
@Singleton
public DAOWriter daoWriter(final IDynamoDBMapper dynamoDBMapper) {
return new DAOWriter(dynamoDBMapper);
}
@Provides
@Singleton
public DAORetriever<MyObjectDAO> myObjectDAORetriever(final IDynamoDBMapper dynamoDBMapper) {
return new DAORetriever<>(dynamoDBMapper, MyObjectDAO.class);
}