Java Guice: Если вы вводите одну и ту же зависимость несколько раз, вводится ли один и тот же экземпляр этой зависимости? - PullRequest
0 голосов
/ 02 октября 2018

У меня есть проект java jersey 2.x, использующий Guice в качестве моей структуры внедрения зависимостей.У меня есть этот сервис

public class AccountService {

private final AccountRepository accountRepository;

@Inject
public AccountService(InMemoryAccountRepositoryImpl inMemoryAccountRepositoryImpl) {
    this.accountRepository = inMemoryAccountRepositoryImpl;
}

Допустим, я создаю другой класс сервиса, который также внедряет InMemoryAccountRepositoryImpl, будет ли внедрен тот же экземпляр?Мне важно знать, потому что этот экземпляр имеет внутреннее состояние, которое должно быть согласованным.

1 Ответ

0 голосов
/ 02 октября 2018

По умолчанию Guice возвращает новый экземпляр каждый раз, когда предоставляет значение.Это поведение настраивается с помощью областей.Области позволяют вам повторно использовать экземпляры: в течение времени жизни приложения (@Singleton), сеанса (@SessionScoped) или запроса (@RequestScoped).Guice включает в себя расширение сервлета, которое определяет области для веб-приложений.Пользовательские области могут быть написаны для других типов приложений.

для получения дополнительной информации см. Документацию

...