簡體   English   中英

如何在開始時使用Google Guice實例化課程

[英]How to use Google Guice to instantiate a class at the start

我正在實現面向服務的體系結構系統。 系統中有一些與外部API通訊的類,因此在啟動程序時必須有某種方法可以實例化這些類,這樣就不必在每次有人發送請求時都將它們實例化。 我想知道Google Guice是否會有類似的東西,但是到目前為止,我發現Google Guice非常適合為接口選擇實現類以及需要的實例化。

為了使我的問題更清楚,我們假設ClassAPIUser是調用外部API的類,也是我想在開始時實例化的類(靜態void main方法)。 假設ClassCaller有一個ClassAPIUser字段。 我想找到一種方法,讓我可以告訴程序從主方法(入口點)中獲取已實例化的ClassAPIUser:

> public class ClassCaller {
> 
>   private ClassAPIUser classAPIUser;
> 
>   // Constructor
>   public ClassCaller (ClassAPIUser classAPIUser) {
>      this.classAPIUser = classAPIUser;
>   }
> }

有沒有一種方法可以使用Google Guice讓ClassCaller知道classAPIUser是在靜態void main方法中實例化的一個? 另外,我應該在static void main方法中指定什么?如何在static void main方法中實例化ClassAPIUser?

默認情況下,Guice每次提供值都會返回一個新實例。 可通過范圍配置此行為。 范圍使您可以重用實例:在應用程序(@Singleton),會話(@SessionScoped)或請求(@RequestScoped)的生存期內。 Guice包含一個Servlet擴展,它定義了Web應用程序的范圍。 可以為其他類型的應用程序編寫自定義范圍。

Singleton是您想要的。 看一下文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM