Spring是一個開源的框架,是爲了解決企業應用程序開發複雜性由RodJohnson建立的。雖然Spring是爲企業級應用推出的,可是全部的Java系統開發均可以使用Spring,包括桌面應用程序和企業級Web應用。簡單的來講,Spring是一個輕量級的控制反轉(IOC)和麪向切面(AOP)的容器框架。html
u 目的:解決企業應用開發的複雜性java
u 功能:使用基本的JavaBean代替EJB,並提供了更多的企業應用功能編程
u 範圍:任何Java應用框架
u 輕量級:大小與開銷方面而言Spring是輕量的。完整的Spring框架能夠在一個大小隻有1MB多的JAR文件裏發佈。而且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應用中的對象不依賴於Spring的特定類。spa
u 非侵入式:Spring應用中的對象不依賴於Spring的特定類。.net
u 控制反轉:Spring經過一種稱爲控制反轉(IOC)的技術促進了鬆耦合。當應用了IOC一個對象依賴的其餘對象會經過被動的方式傳遞進來,而不是這個對象本身建立或者查找依賴對象。你能夠認爲IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。prototype
u 切面編程:Spring提供了面向切面編程的豐富支持,容許經過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發。應用對象只實現它們應該作的——完成業務邏輯——僅此而已。它們並不負責(甚至是意識)其它的系統級關注點,例如日誌或事務支持。日誌
u 容器:Spring包含並管理應用對象的配置和生命週期,在這個意義上它是一種容器,你能夠配置你的每一個bean如何被建立—一個可配置的原型(prototype),你的bean能夠建立一個單獨的實例或者每次須要時都生成一個新的實例,以及它們是如何關聯的。htm
u 框架:Spring能夠將簡單的組件配置,組成爲複雜的應用,在Spring中應用對象被聲明式組合,典型地是在一個XML文件裏,Spring提供了不少基礎功能(事務管理、持久化框架集成等等),將應用邏輯的開發留給了咱們。對象
另外詳情介紹能夠參考博客
http://developer.51cto.com/art/200906/128386.htm
http://blog.csdn.net/lovesummerforever/article/details/22500339
2.1 IOC容器的理解:
http://www.cnblogs.com/superjt/p/4311577.html
2.2 IOC容器的原理
http://blog.csdn.net/luoshenfu001/article/details/5816408/
http://jiwenke.iteye.com/blog/493965
http://blog.csdn.net/lovesummerforever/article/details/22646793
http://www.cnblogs.com/ITtangtang/p/3978349.html#a3(源碼解讀)
AOP的理解
http://blog.csdn.net/qukaiwei/article/details/50367761(通俗易懂類型)
AOP的原理及其說明
http://blog.csdn.net/moreevan/article/details/11977115/