Java Guice:如果你多次注入相同的依赖项,是否注入了该依赖项的相同实例?



我有一个java jersey 2.x项目,使用Guice作为我的依赖注入框架。我有这项服务

public class AccountService {
private final AccountRepository accountRepository;
@Inject
public AccountService(InMemoryAccountRepositoryImpl inMemoryAccountRepositoryImpl) {
this.accountRepository = inMemoryAccountRepositoryImpl;
}

假设我创建了另一个也注入InMemoryAccountRepositoryImpl的服务类,是否会注入相同的实例?知道这一点很重要,因为此实例具有需要保持一致的内部状态。

默认情况下,Guice 每次提供值时都会返回一个新实例。此行为可通过作用域进行配置。作用域允许您重复使用实例:在应用程序的生存期 (@Singleton(、会话 (@SessionScoped( 或请求 (@RequestScoped( 期间。Guice 包含一个定义 Web 应用程序范围的 servlet 扩展。可以为其他类型的应用程序编写自定义作用域。

有关详细信息,请参阅文档

最新更新