Spring的所有模塊都是建立在核心容器之上的。容器規定如何創建和配置Bean,以及很多Spring的具體細節。
核心容器:Spring核心容器為Spring框架提供了基礎功能。在這個模塊中你會找到BeanFactory,它是所有基于Spring框架系統的核心。BeanFactory采用工廠模式來實現IOC,它將系統的配置和依賴關系從代碼中獨立出來。
Application Context模塊
上下文模塊是使Spring成為框架的原因。這個模塊擴展了BeanFactory.這個模塊提供了很多企業級服務如電子郵件服務、JNDI訪問、EJB繼承、遠程調用以及定時服務,并且支持與模板框架的集成。
Spring的AOP模塊
在AOP模塊中,Spring對面向切面提供了豐富的支持。這個模塊是為Spring應用系統開發切面的基礎。
JDBC抽象及DAO模塊
Spring的JDBC和DAO模塊把這些樣板式的代碼抽象出來,讓你的數據庫代碼變得簡單明了。
O/R映射集成模塊
Spring不想實現自己的ORM解決方案,但是它為許多流行的ORM框架做了鉤子程序,包括Hibernate、JDO和iBatis映射,Spring的事務管理支持所有這些ORM框架以及JDBC.
Spring的web模塊
web上下文模塊建立在應用上下文模塊的基礎之上,提供了適合web系統的上下文。
Spring MVC框架
Spring為web系統提供了全功能的MVC框架。
應用:
使用<property>元素表示設置屬性值。使用<constructor-arg>元素表示通過構造方法設置參數
public class HelloApp{
public static void main(String[] args)throws Exception{
BeanFactory factory = new XmlBeanFactory(new FileInputStream("hello.xml"));
GreetingService greetingService = (GreetingService)factory.getBean("greetingSercice");
greetingService.sayGreeting();
}
}
這里的BeanFactory就是Spring容器。將hello.xml文件載入容器后,main()方法調用BeanFactory的getBean()方法來得到問候服務的引用。
反向控制:控制的什么方面被反轉了,獲得依賴對象的方式反轉了。
依賴注入:任何重要的系統都需要至少2個相互合作的類來完成業務邏輯,通常,每個對象都要自己負責得到它的合作(依賴)對象。你會發現,這樣會導致代碼耦合度高而且難以測試。
使用IOC,對象的依賴都是在對象創建時由負責協調系統中各個對象的外部實體提供的。
耦合是一個雙頭怪物,一方面,緊密耦合的代碼難以測試,難以重用,難以理解,帶來典型的摧毀大堤bug.另一方面,完全沒有耦合的代碼什么也做不了。為了做一些有意義的工作,類必須以某種方式知道其他類的存在。耦合是必須的,但需要小心管理。
減少耦合的一個通常的做法就是將具體實現隱藏在接口下面,這樣具體實現類的替換不會影響到引用類。
posted on 2009-10-12 21:53
王永慶 閱讀(249)
評論(0) 編輯 收藏 所屬分類:
SPRING