spring的設計模式模式
spring中的設計模式
Spring框架是由於軟體開發的複雜性而建立的。Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅僅限於伺服器端的開發。從簡單性、可測試性和鬆耦合性角度而言,絕大部分Java應用都可以從Spring中受益。
◆目的:解決企業應用開發的複雜性
◆功能:使用基本的JavaBean代替EJB,並提供了更多的企業應用功能
◆範圍:任何Java應用
Spring是一個輕量級控制反轉(IoC)和麵向切面(AOP)的容器框架
那麼spring中用到了那些設計模式呢?
a. 單例模式---------spring中兩種代理方式,若物件實現了若干介面,spring使用jdk的java.lang。reflect.Proxy類代理。若目標物件沒有實現任何介面,spring使用CGLIB生成目標類的子類。 此單例模式為非執行緒安全的。
b.模板方式模式------用來解決程式碼重複的問題。 比如:RestTemolate·JmsTemplate
c.工廠模式-------在工廠模式中,我們建立物件時不會對客戶端暴露出建立邏輯,並且通過介面指向新建立的物件。Spring中用beanFactory來建立物件例項。
d.依賴注入---------貫穿於BeanFactory/ApplacationContext介面的核心理念。
**
單例模式
**定義:保證一個類僅有一個例項,並提供一個訪問它的全域性訪問點。
-
餓漢模式 public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){ } public static Singleton getInstance() { return instance; } }
-
懶漢模式(執行緒安全)
public class Singleton { private static Singleton instance; private Singleton (){ } public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }