我正在实现一个面向服务的体系结构系统。我的系统中有一些类与外部API对话,所以当我启动程序时,我们必须有一些方法来实例化这些类,这样它们就不必每次发送请求时都被实例化。我想知道Google是否会有类似的东西,但到目前为止,我发现Google对于为接口选择实现类和按需要实例化是很好的。
为了使我的问题更清楚,让我们假设ClassAPIUser是调用外部API的类,它是我希望在开始时实例化的类(静态void方法)。假设ClassCaller有一个ClassAPIUser字段。我想找到一种方法,以便告诉我的程序从主方法(入口点)获取已经实例化的ClassAPIUser:
> public class ClassCaller {
>
> private ClassAPIUser classAPIUser;
>
> // Constructor
> public ClassCaller (ClassAPIUser classAPIUser) {
> this.classAPIUser = classAPIUser;
> }
> }有什么方法可以使用Google让ClassCaller知道classAPIUser是静态void方法中实例化的吗?此外,我应该在静态void方法中指定什么,如何在静态void方法中实例化ClassAPIUser?
发布于 2017-07-30 01:19:55
默认情况下,Guice每次提供值时都返回一个新实例。这种行为可以通过作用域进行配置。作用域允许您重用实例:在应用程序(@Singleton)、会话(@SessionScoped)或请求(@RequestScoped)的生存期内。Guice包括一个servlet扩展,它定义了web应用程序的作用域。可以为其他类型的应用程序编写自定义作用域。
Singleton是你想要的。看一看文档。
https://stackoverflow.com/questions/45395405
复制相似问题