如何使用 Google Guice 在开头实例化一个 class
How to use Google Guice to instantiate a class at the start
我正在实施面向服务的体系结构系统。我的系统中有一些 classes 与外部 API 对话,所以必须有一些方法可以在我启动我的程序时实例化这些 classes,这样他们就不会每次有人发送请求时都必须实例化。我想知道 Google Guice 是否会有类似的东西,但到目前为止我发现 Google Guice 非常适合为接口选择实现 class,以及按需实例化。
为了让我的问题更清楚,假设ClassAPI用户是调用外部API的class,它是class 我想在开始时实例化(static void main 方法)。假设 ClassCaller 有一个字段 ClassAPIUser。我想找到一种方法,以便我可以告诉我的程序从主方法(入口点)获取已经实例化的 ClassAPIUser :
> public class ClassCaller {
>
> private ClassAPIUser classAPIUser;
>
> // Constructor
> public ClassCaller (ClassAPIUser classAPIUser) {
> this.classAPIUser = classAPIUser;
> }
> }
有没有一种方法可以使用 Google Guice 让 ClassCaller 知道 classAPIUser 是在 static void main 方法中实例化的那个?另外,我应该在 static void main 方法中指定什么以及我应该如何在 static void main 方法中实例化 ClassAPIUser?
By default, Guice returns a new instance each time it supplies a value. This behaviour is configurable via scopes. Scopes allow you to reuse instances: for the lifetime of an application (@Singleton), a session (@SessionScoped), or a request (@RequestScoped). Guice includes a servlet extension that defines scopes for web apps. Custom scopes can be written for other types of applications.
Singleton
就是你想要的。看看 documentation.
我正在实施面向服务的体系结构系统。我的系统中有一些 classes 与外部 API 对话,所以必须有一些方法可以在我启动我的程序时实例化这些 classes,这样他们就不会每次有人发送请求时都必须实例化。我想知道 Google Guice 是否会有类似的东西,但到目前为止我发现 Google Guice 非常适合为接口选择实现 class,以及按需实例化。
为了让我的问题更清楚,假设ClassAPI用户是调用外部API的class,它是class 我想在开始时实例化(static void main 方法)。假设 ClassCaller 有一个字段 ClassAPIUser。我想找到一种方法,以便我可以告诉我的程序从主方法(入口点)获取已经实例化的 ClassAPIUser :
> public class ClassCaller {
>
> private ClassAPIUser classAPIUser;
>
> // Constructor
> public ClassCaller (ClassAPIUser classAPIUser) {
> this.classAPIUser = classAPIUser;
> }
> }
有没有一种方法可以使用 Google Guice 让 ClassCaller 知道 classAPIUser 是在 static void main 方法中实例化的那个?另外,我应该在 static void main 方法中指定什么以及我应该如何在 static void main 方法中实例化 ClassAPIUser?
By default, Guice returns a new instance each time it supplies a value. This behaviour is configurable via scopes. Scopes allow you to reuse instances: for the lifetime of an application (@Singleton), a session (@SessionScoped), or a request (@RequestScoped). Guice includes a servlet extension that defines scopes for web apps. Custom scopes can be written for other types of applications.
Singleton
就是你想要的。看看 documentation.