簡體   English   中英

最后的Util類靜態vs Singleton類

[英]final Util Class Static vs Singleton Class

當前,我正在嘗試實現一個實用程序類,該實用程序類生成PDF格式的發票,並且我預計以后需要在我的實用程序類中注入彈跳豆。

但是我不需要實例化類,我只需要方法。 所以對我來說,這是一個難題

所以我做了一些研究,但我還是沒下定決心,如果我要春季的單身豆或。

Spring Singleton: 來源

@Service
public class Singleton {

private static AtomicReference<Singleton> INSTANCE = new AtomicReference<Singleton>();

public Singleton() {
    final Singleton previous = INSTANCE.getAndSet(this);
    if(previous != null)
        throw new IllegalStateException("Second singleton " + this + " created after " + previous);
}

public static Singleton getInstance() {
    return INSTANCE.get();
}
}

或最后一堂課:

 public final InvoiceUtil {

  private InvoiceUtil() {} 

  public static String convertToPDF (Template template) {
    //Do the work
  }

 }

但是使用第二種方法時,我的班級不是由Spring管理的,因此無法向其注入bean。

讓我無法理解! :p

如果您使用Spring Bean,請不要通過getInstance()將Spring Service作為Singleton實現。 只需添加@Service,Spring只會實例化一次。

您可以使用靜態方法,然后再將任何依賴項傳遞給這些方法(如果這些依賴項很少):

public static String convertToPDF (Template template, NeededHelper helper) {
     ...
}

暫無
暫無

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

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