繁体   English   中英

Java Guice:如果您多次注入相同的依赖项,那么是否会注入相同的依赖项实例?

[英]Java Guice: If you inject the same dependency multiple times, is the same instance of that dependency injected?

我有一个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包含一个Servlet扩展,它定义了Web应用程序的范围。 可以为其他类型的应用程序编写自定义范围。

有关更多信息,请参见文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM