Spring框架是一個輕量的企業級的開發一站式解決方案,Spring框架已是輕量級Java EE實際上的的行業標準。html
Spring是模塊化的,開發者能夠選擇本身須要的模塊進行集成。java
Spring核心的模塊包含:Core Container(核心容器)、Data Access(數據訪問)、AOP(面像切面)、Web(Web集成功能)、Test(測試),等等。spring
除了Spring Core Container(Spring核心容器)是必須的,其餘的組成 Spring 框架的每一個模塊均可以單獨存在,或者與其餘一個或多個模塊聯合實現。數據庫
Spring 核心容器提供了 Spring 框架的基本功能,管理着Spring應用中bean的建立、配置和管理。編程
Spring 核心容器的主要組件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用DI將應用程序的配置和依賴性規範與實際的應用程序代碼分開。segmentfault
下面是Spring核心模塊的概要:api
Spring 上下文是一個配置文件,向 Spring 框架提供上下文信息。安全
Spring 上下文提供了一種框架式的對象訪問方法,有些象JNDI註冊器。服務器
Context封裝包的特性得自於Beans封裝包,並添加了對國際化(I18N)的支持(例如資源綁定),事件傳播,資源裝載的方式和Context的透明建立,好比說經過Servlet容器。restful
Spring 上下文和Bean工廠都是 bean 容器 的實現。
經過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。因此,能夠很容易地使 Spring 框架管理的任何對象支持 AOP。
Spring AOP 模塊爲基於 Spring 的應用程序中的對象提供了事務管理服務。
JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不一樣數據庫供應商拋出的錯誤消息。異常層次結構簡化了錯誤處理,而且極大地下降了須要編寫的異常代碼數量(例如打開和關閉鏈接)。
Spring DAO 的面向 JDBC 的異常聽從通用的 DAO 異常層次結構。
Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的對象關係工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。全部這些都聽從 Spring 的通用事務和 DAO 異常層次結構。
Web 上下文模塊創建在應用程序上下文模塊之上,爲基於 Web 的應用程序提供了上下文。
MVC 框架是一個全功能的構建 Web 應用程序的 MVC 實現。經過策略接口,MVC 框架變成爲高度可配置的,MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。
Spring框架有以下優勢:
低侵入式設計,代碼污染極低。
獨立於各類應用服務器,基於Spring框架的應用,能夠真正實現Write Once,Run Anywhere的承諾。
Spring的DI機制/IoC容器,下降了業務對象替換的複雜性,提升了組件之間的解耦。
Spring的AOP支持容許將一些通用任務,例如安全、事務、日誌等進行集中式管理,從而提供了更好的複用。
Spring的ORM和DAO提供了與第三方持久層框架的良好整合,並簡化了底層的數據庫訪問,Spring Data則提供了對NoSQL的良好支持。
Spring並非針對應用的某一層,而是對應用的各層都提供瞭解決方案。
Spring具備高度的開放性,並不強制應用徹底依賴於Spring,開發者可自由選用Spring框架的部分或所有。
Spring在2017 年9月發佈Spring 5的通用版本 (GA),這是自 2013 年12月以來第一個主要 Spring Framework 版本。
Spring 5 提供了一些人們期待已久的改進,兼容 Java 8 和 Java 9,還採用了一種全新的編程範例,並提供了反應式流的支持。
Spring 5主要有如下新特性:
Spring Boot 是由 Pivotal 團隊提供的全新框架,其設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程,該框架使用了特定的方式來進行配置,從而使開發人員再也不須要定義樣板化的配置。
Spring Boot 默認配置了不少框架的使用方式,就像 Maven 整合了全部的 jar 包,Spring Boot 整合了全部的框架。
它的核心設計思想是:約定優於配置。
Spring Boot 全部開發細節都是依據此思想進行實現的。
Spring Boot 是一套全新的框架,它來自於 Spring 你們族,所以 Spring 全部具有的功能它都有而且更容易使用;同時還簡化了基於 Spring 的應用開發,經過少許的代碼就能建立一個獨立的、產品級別的 Spring 應用。
使編碼變得簡單 : 推薦使用註解,組件自動裝配,外部化配置,高度封裝,開箱即用
使配置變得簡單: 約定大於配置,主流框架無配置集成,專一核心業務,提供快速集成新技術、快速構建、自動配置的能力
使部署變得簡單: 內嵌Tomcat、Jetty等Web容器,支持獨立運行
使監控變得簡單: 自帶項目監控實現
基於Spring 5 構建,支持Spring 5的新特性
爲組件的響應式編程提供了簡化配置,如Reactive Spring Data,Reactive Spring Security等
依賴版本升級,如要求Java8以上並支持Java 9,Maven3.2或更高版本,Tomcat 8或更高版本,Hibernate 5.2或更高版本等
Apache Maven是一個項目管理和理解工具,它基於項目對象模型(POM)的概念,它能夠管理項目的構建、報告和文檔。
Maven經過元素聲明父項目依賴,父項目聲明的依賴會自動傳遞到子項目。
在項目的 parent 層,能夠經過 元素來管理 jar 包的版本,讓子項目中引用一個依賴而不用顯式聲明版本號。
links:
author: ijiangtao.net