[英]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.