簡介
Spring是一個開放原始碼的J2EE應用程式框架,由Rod Johnson發起,是針對bean的生命周期進行管理的輕量級容器(lightweight container)。 Spring解決了開發者在J2EE開發中遇到的許多常見的問題,提供了功能強大IOC、AOP及Web MVC等功能。Spring可以單獨套用於構築應用程式,也可以和Struts、Webwork、Tapestry等眾多Web框架組合使用,並且可以與 Swing等桌面應用程式AP組合。因此, Spring不僅僅能套用於J2EE應用程式之中,也可以套用於桌面應用程式以及小應用程式之中。Spring框架主要由七部分組成,分別是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
容器
Spring 設計的核心是 org.springframework.beans 包,它的設計目標是與 JavaBean 組件一起使用。這個包通常不是由用戶直接使用,而是由伺服器將其用作其他多數功能的底層中介。下一個最高級抽象是BeanFactory接口,它是工廠設計模式的實現,允許通過名稱創建和檢索對象。BeanFactory 也可以管理對象之間的關係。Bean Factory 支持兩個對象模型:
1、單態模型提供了具有特定名稱的對象的共享實例,可以在查詢時對其進行檢索。Singleton是默認的也是最常用的對象模型。對於無狀態服務對象很理想。
2、原型模型確保每次檢索都會創建單獨的對象。在每個用戶都需要自己的對象時,原型模型最適合。bean 工廠的概念是 Spring 作為 IOC 容器的基礎。IOC 將處理事情的責任從應用程式代碼轉移到框架。
作用
微服務
微服務架構是“新常態”。構建小型、獨立的、隨時可以運行的應用程式可以為您的代碼帶來極大的靈活性和彈性。Spring Boot 的許多定製的功能使在生產中大規模構建和運行微服務變得容易。並且不要忘記,沒有Spring Cloud 的微服務架構是不完整的,Spring Cloud可以簡化管理並提高容錯能力。
回響式
回響式系統具有某些特性,使其成為低延遲、高吞吐量工作負載的理想選擇。Project Reactor 和 Spring 產品組合協同工作,使開發人員能夠構建具有回響式、彈性和訊息驅動的企業級回響式式系統。
雲
開發分散式系統可能具有挑戰性。複雜性從套用層轉移到網路層,需要服務之間進行更多的互動。使您的代碼成為“雲原生”意味著處理12要素諸如外部配置、無狀態、日誌記錄和連線到支持服務等問題。Spring Cloud 項目套件包含使應用程式在雲中運行所需的許多服務。
網路套用
Spring 使構建 Web 應用程式變得快速而輕鬆。通過刪除與 Web 開發相關的大部分樣板代碼和配置,您可以獲得一個現代 Web 編程模型,該模型簡化了伺服器端 HTML 應用程式、REST API 和雙向、基於事件的系統的開發。
無伺服器
無伺服器應用程式利用現代雲計算功能和抽象,讓您專注於邏輯而不是基礎設施。在無伺服器環境中,您可以專注於編寫應用程式代碼,而底層平台負責擴展、運行時、資源分配、安全性和其他“伺服器”細節。
事件驅動
事件驅動的系統反映了現代企業的實際運作方式——每天都在發生數以千計的小變化。Spring 能夠處理事件並使開發人員能夠圍繞它們構建應用程式,這意味著您的應用程式將與您的業務保持同步。Spring 有許多事件驅動的選項可供選擇,從集成和流式傳輸一直到雲功能和數據流。
批量
有效處理大量數據的能力使其成為許多用例的理想選擇。Spring Batch 對行業標準處理模式的實現讓您可以在 JVM 上構建健壯的批量處理作業。從 Spring 產品組合中添加 Spring Boot 和其他組件可讓您構建任務關鍵型批量處理應用程式。