SpringBoot系列之瞭解SpringBoot的前置知識

Spring 框架

Spring框架是一個輕量的企業級的開發一站式解決方案,Spring框架已是輕量級Java EE實際上的的行業標準。html

Spring 模塊

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框架模塊

下面是Spring核心模塊的概要:api

  • Spring 上下文:

Spring 上下文是一個配置文件,向 Spring 框架提供上下文信息。安全

Spring 上下文提供了一種框架式的對象訪問方法,有些象JNDI註冊器。服務器

Context封裝包的特性得自於Beans封裝包,並添加了對國際化(I18N)的支持(例如資源綁定),事件傳播,資源裝載的方式和Context的透明建立,好比說經過Servlet容器。restful

Spring 上下文和Bean工廠都是 bean 容器 的實現。

  • Spring AOP:

經過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。因此,能夠很容易地使 Spring 框架管理的任何對象支持 AOP。

Spring AOP 模塊爲基於 Spring 的應用程序中的對象提供了事務管理服務。

  • Spring DAO:

JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不一樣數據庫供應商拋出的錯誤消息。異常層次結構簡化了錯誤處理,而且極大地下降了須要編寫的異常代碼數量(例如打開和關閉鏈接)。

Spring DAO 的面向 JDBC 的異常聽從通用的 DAO 異常層次結構。

  • Spring ORM:

Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的對象關係工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。全部這些都聽從 Spring 的通用事務和 DAO 異常層次結構。

  • Spring Web 模塊:

Web 上下文模塊創建在應用程序上下文模塊之上,爲基於 Web 的應用程序提供了上下文。

  • Spring MVC 框架:

MVC 框架是一個全功能的構建 Web 應用程序的 MVC 實現。經過策略接口,MVC 框架變成爲高度可配置的,MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。

Spring 優勢

Spring框架有以下優勢:

  • 低侵入式設計,代碼污染極低。

  • 獨立於各類應用服務器,基於Spring框架的應用,能夠真正實現Write Once,Run Anywhere的承諾。

  • Spring的DI機制/IoC容器,下降了業務對象替換的複雜性,提升了組件之間的解耦。

  • Spring的AOP支持容許將一些通用任務,例如安全、事務、日誌等進行集中式管理,從而提供了更好的複用。

  • Spring的ORM和DAO提供了與第三方持久層框架的良好整合,並簡化了底層的數據庫訪問,Spring Data則提供了對NoSQL的良好支持。

  • Spring並非針對應用的某一層,而是對應用的各層都提供瞭解決方案。

  • Spring具備高度的開放性,並不強制應用徹底依賴於Spring,開發者可自由選用Spring框架的部分或所有。

Spring 5

Spring在2017 年9月發佈Spring 5的通用版本 (GA),這是自 2013 年12月以來第一個主要 Spring Framework 版本。

Spring 5 提供了一些人們期待已久的改進,兼容 Java 8 和 Java 9,還採用了一種全新的編程範例,並提供了反應式流的支持。

Spring 5主要有如下新特性:

  • 升級到 Java SE 8 和 Java EE 7
  • 反應式編程模型
  • 使用註解進行編程
  • 函數式編程
  • 使用 REST 端點執行反應式編程
  • HTTP/2 支持
  • Kotlin 和 Spring WebFlux
  • 使用 Lambda 表達式註冊 bean
  • Spring WebMVC 支持最新的 API
  • 使用 JUnit 5 執行條件和併發測試
  • 使用 Spring WebFlux 執行集成測試
  • 包清理和棄用
  • 對 Spring 核心和容器的通常更新

Spring 生態

  • Spring Boot:一站式快速開發解決項目
  • Spring Cloud:提供對分佈式系統的支持
  • Spring Data:提供對主流的關係型及NOSQL型數據庫的封裝支持
  • Spring Security:支持系統受權、認證的支持
  • Spring Session:提供對session管理的支持
  • Spring Batch:提供對大數據的批處理簡化處理優化的支持
  • Spring Social:提供對社交網絡API的集成,如Facebook、Google等
  • Spring AMQP:提供對AMQP的消息支持
  • Spring LDAP:提供並簡化使用LDAP的支持
  • Spring XD:用來簡化對大數據應用開發
  • Spring Integration:經過消息機制對企業集成模式EIP的支持
  • Spring Mobile:支持對手機設備檢測等功能
  • Spring for Android:提供在安卓平臺消費restful api的支持
  • Spring Web Flow:基於spring mvc提供對嚮導流程式的開發
  • Spring Web Services:提供基於SOAP/Web協議服務支持

Spring Boot

什麼是Spring Boot

Spring Boot 是由 Pivotal 團隊提供的全新框架,其設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程,該框架使用了特定的方式來進行配置,從而使開發人員再也不須要定義樣板化的配置。

Spring Boot 默認配置了不少框架的使用方式,就像 Maven 整合了全部的 jar 包,Spring Boot 整合了全部的框架。

它的核心設計思想是:約定優於配置。

Spring Boot 全部開發細節都是依據此思想進行實現的。

Spring Boot 是一套全新的框架,它來自於 Spring 你們族,所以 Spring 全部具有的功能它都有而且更容易使用;同時還簡化了基於 Spring 的應用開發,經過少許的代碼就能建立一個獨立的、產品級別的 Spring 應用。

SpringBoot在Spring生態中的位置:

SpringBoot在Spring生態中的位置

Spring Boot 的優勢

  • 使編碼變得簡單 : 推薦使用註解,組件自動裝配,外部化配置,高度封裝,開箱即用

  • 使配置變得簡單: 約定大於配置,主流框架無配置集成,專一核心業務,提供快速集成新技術、快速構建、自動配置的能力

  • 使部署變得簡單: 內嵌Tomcat、Jetty等Web容器,支持獨立運行

  • 使監控變得簡單: 自帶項目監控實現

Spring Boot 2.0 的新變化

  • 基於Spring 5 構建,支持Spring 5的新特性

  • 爲組件的響應式編程提供了簡化配置,如Reactive Spring Data,Reactive Spring Security等

  • 依賴版本升級,如要求Java8以上並支持Java 9,Maven3.2或更高版本,Tomcat 8或更高版本,Hibernate 5.2或更高版本等

Maven

  • 什麼是Maven

Apache Maven是一個項目管理和理解工具,它基於項目對象模型(POM)的概念,它能夠管理項目的構建、報告和文檔。

  • Maven的parent和modules

Maven經過元素聲明父項目依賴,父項目聲明的依賴會自動傳遞到子項目。

在項目的 parent 層,能夠經過 元素來管理 jar 包的版本,讓子項目中引用一個依賴而不用顯式聲明版本號。


links:

author: ijiangtao.net

相關文章
相關標籤/搜索