Spring是一個開放源代碼的設計層面框架,它解決的是業務邏輯層和其餘各層的鬆耦合問題,所以它將面向接口的編程思想貫穿整個系統應用。Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson建立。簡單來講,Spring是一個分層的JavaSE/EEfull-stack(一站式) 輕量級開源框架【來自百度百科】。html
目前Spring已經發展到5.0.4 版本了,今天我們就來聊一聊spring各個版本都提供了哪些新的特性。web
spring的2.x包括下面兩個:spring
2.0 新特性數據庫
XML Schema的新XML配置語法的出現編程
新的Bean的做用域數組
之前的Spring版本對IoC容器級支持兩個不一樣的bean做用域(singleton和prototype)。Spring 2.0在這方面進行了改進,不只根據部署Spring的環境(例如Web環境中的請求和會話做用域Bean)提供了一些額外的做用域,還提供了「掛鉤」),使Spring用戶能夠建立本身的範圍。 應該注意的是,雖然singleton和prototype做用域bean的底層(和內部)實現已經改變,可是所述改變對於最終用戶是徹底透明的...不須要改變現有的配置,而且不存在現有的配置將會中斷。 緩存
可擴展的XML服務器
支持@AspectJ方面網絡
更加簡單XML配置(aop&事務)併發
異步JMS
Spring MVC的表單標籤庫
Java 5(Tiger)支持
Spring 2.0如今支持用Java之外的語言編寫的bean,目前支持的動態語言是JRuby,Groovy和BeanShell
提供了一個關於任務調度的抽象概念
引入了對各類註釋的支持,用於配置目的,例如@ Transactional, @Required和@PersistenceContext / @PersistenceUnit。
2.5 新特性
在Spring 2.0在整個框架中對Java 5的深刻支持以後,Spring 2.5引入了對Java 6的專門支持。
@Autowired結合對JSR-250註釋@Resource,@ PostConstruct和@PreDestroy的支持 。
在類路徑中自動檢測組件
Spring 2.5引入了支持組件掃描:在類路徑中自動檢測帶註釋的組件。典型地,這樣的組件類將與定型如進行註釋@Component, @Repository,@Service, @Controller。根據應用程序的上下文配置,這些組件類將被自動檢測並轉換爲Spring bean定義,而不須要爲每一個這樣的bean顯式配置。
支持bean名稱切入點元素
Spring 2.5引入了對bean(...) pointcut元素的支持,根據Spring定義的bean名稱匹配特定的命名bean
支持AspectJ加載時織入
Spring 2.5顯着擴展了SimpleJdbcTemplate的功能, 並引入了 SimpleJdbcCall和SimpleJdbcInsert 操做對象。
基於註釋的控制器。
Spring 2.5爲MVC控制器引入了一個基於註釋的編程模型,使用@ RequestMapping,@ RequestParam,@ ModelAttribute等註解。這個註解支持可用於Servlet MVC和Portlet MVC。以這種風格實現的控制器沒必要擴展特定的基類或實現特定的接口。此外,他們一般不直接依賴於Servlet或Portlet API,儘管他們能夠很容易地訪問Servlet或Portlet設施。
引入了Spring TestContext框架
spring 3.x包括如下幾個系列:
在2.x的模塊上頁拓展了新的模塊
3.0.x 新特性
3.1.x 新特性
緩存抽象
Bean定義配置文件
環境抽象
PropertySource抽象
Spring的XML名稱空間的代碼等價物
支持Hibernate 4.x
TestContext框架支持@Configuration類和bean定義配置文件
更簡潔的構造函數注入的命名空間
支持針對非標準JavaBeans設置器的注入
支持Servlet 3基於代碼的Servlet Container配置
支持Servlet 3 MultipartResolver
沒有persistence.xml的JPA EntityManagerFactory引導
用於註釋的控制器處理的新的基於HandlerMethod的支持類
Flash屬性和RedirectAttributes(請求重定向參數的支持)
"consumes" and "produces" conditions in @RequestMapping
改進了對經過'Content-Type'標題指定方法消耗的媒體類型以及經過標題指定的可生成類型的支持'Accept'
URI模板變量加強
@Valid on @RequestBody控制器方法參數
控制器方法參數上的@RequestPart註釋
UriComponentsBuilder和UriComponents
3.2.x 新特性
spring 4包括如下系列版本:
刪除棄用的軟件包和方法
可選的第三方依賴已被提高到2010/2011最低(即Spring 4一般只支持2010年底或以後發佈的版本):特別是,Hibernate 3.6+,EhCache 2.1+,Quartz 1.8+,Groovy 1.8+和Joda-Time 2.0+。做爲規則的一個例外,Spring 4須要最近的Hibernate Validator 4.3+,而且對Jackson的支持已經集中在2.0+以上(當前Spring 3.2已經保留了對Jackson 1.8 / 1.9的支持;如今只是棄用了造成)。
Java 8(以及6和7)
可使用Spring的回調接口使用 lambda表達式和方法引用
Java EE 6和7
Java EE 6或更高版本如今被認爲是Spring Framework 4的基準,JPA 2.0和Servlet 3.0規範特別相關。爲了與Google App Engine和較早的應用程序服務器保持兼容,能夠將Spring 4應用程序部署到Servlet 2.5環境中。不過,強烈建議使用Servlet 3.0+,這是Spring開發環境中測試設置的測試和模擬包中的先決條件。
Groovy Bean定義DSL
核心容器改進
web 模塊支持
測試改進
WebSocket,SockJS和STOMP消息傳遞
spring 4.1.x 新特性
spring 4.2.x 新特性
spring 4.3.x 新特性
目前尚未用過spring5,總會有憧憬。當咱們使用spring愈來愈簡單時,危機也在一步步逼近;看到表象,進一步,再進一步!