Spring 應用之單例設計模式

2021-09-28 08:34:32 字數 861 閱讀 1159

在系統開發中,有些物件其實只需要乙個,比如說:執行緒池、快取、日誌物件等。在 spring 框架中,就大量應用到了單例設計模式。

使用單例模式的好處:

spring 中 bean 的預設作用域就是 singleton 的

除了 singleton 作用域,spring 中 bean 還有下面幾種作用域:

spring 實現單例的方式:

xml:

註解:@scope(value = "singleton")

spring 是借助 concurrenthashmap 來實現單例登錄檔。spring 實現單例的核心**如下:

private final mapsingletonobjects = new concurrenthashmap(64);

public object getsingleton(string beanname, objectfactory<?> singletonfactory)

//...省略了很多**

// 如果例項物件在不存在,我們註冊到單例登錄檔中。

addsingleton(beanname, singletonobject);

}return (singletonobject != null_object ? singletonobject : null);

}}//將物件新增到單例登錄檔

protected void addsingleton(string beanname, object singletonobject)

}

php在設計模式中的應用之單例模式

專案剛忙完上線,這幾天比較空閒,就多看看書,多寫寫部落格。先來一發簡單的設計模式 單例模式。單例模式在常用的設計模式裡面是比較簡單的一種,個人理解它最大的作用是保持記憶體中物件的唯一性,從而避免物件頻繁地例項化浪費記憶體資源。應用場景見過最多就是資料庫連線物件的例項化。而單例模式常見的有兩種 懶漢式...

Spring 應用之模板方法設計模式

模板方法模式是行為設計模式的一種,它定義乙個操作中演算法的骨架,而將一些執行步驟延遲到了子類中。模板方法使得子類可以不改變演算法本身的結構,即可重新定義該演算法的某些特定步驟的實現方式。模板方法設計模式 uml 圖 public abstract class template protected v...

設計模式 單例應用 java

最近有空閒時間,就想著把曾經用到過的設計模式做乙個回顧,順便也把它分享出來,僅供參考 1 建立單例類 import org.apache.camel.camelcontext import org.apache.camel.impl.defaultcamelcontext created by lk...