我有一个Java jersey 2.x项目,使用Guice作为我的依赖项注入框架。我有这项服务
public class AccountService {
private final AccountRepository accountRepository;
@Inject
public AccountService(InMemoryAccountRepositoryImpl inMemoryAccountRepositoryImpl) {
this.accountRepository = inMemoryAccountRepositoryImpl;
}
让我们创建另一个也注入InMemoryAccountRepositoryImpl
的服务类,是否将注入相同的实例?对我来说很重要,因为此实例的内部状态必须保持一致。
答案 0 :(得分:2)
默认情况下,Guice每次提供值都会返回一个新实例。可通过范围配置此行为。范围使您可以重用实例:在应用程序(@Singleton),会话(@SessionScoped)或请求(@RequestScoped)的生存期内。 Guice包含一个Servlet扩展,它定义了Web应用程序的范围。可以为其他类型的应用程序编写自定义范围。
有关更多信息,请参见documentation