1. 概述
今天我們將討論 Spring 作為最流行的 Java 框架之一的主要價(jià)值體現(xiàn)。
最重要的是,我們將嘗試?yán)斫?Spring 成為我們選擇框架的原因。Spring 的詳細(xì)信息及其組成部分已在我們 之前的教程中廣泛介紹 。 因此,我們將跳過介紹性的“如何”部分,并主要關(guān)注“為什么”。
2. 為什么使用任何框架?
在我們開始任何關(guān)于 Spring 的討論之前,首先讓我們了解為什么我們首先需要使用任何框架。
像 Java 這樣的通用編程語言能夠支持多種應(yīng)用程序。更不用說 Java 每天都在積極地改進(jìn)。
此外,還有無數(shù)開源和專有庫在這方面支持 Java 。
那么,我們究竟為什么需要一個(gè)框架呢?老實(shí)說,使用框架來完成任務(wù)并不是絕對必要的。但是,出于以下幾個(gè)原因,使用一個(gè)通常是明智的:
幫助我們 專注于核心任務(wù),而不是與之相關(guān)的樣板
以設(shè)計(jì)模式的形式匯集了多年的智慧
幫助我們遵守行業(yè)和監(jiān)管標(biāo)準(zhǔn)
降低應(yīng)用程序的總體擁有成本
我們剛剛觸及了表面,我們必須說,好處難以忽視。但這不可能是積極的,所以要注意的是:
強(qiáng)制我們 以特定的方式編寫應(yīng)用程序
綁定到特定版本的語言和庫
添加到應(yīng)用程序的資源占用
坦率地說,在軟件開發(fā)和框架中沒有什么銀彈,Java 當(dāng)然也不例外。因此,應(yīng)該根據(jù)上下文來選擇哪個(gè)框架或不用框架。
在本文的最后,我們將更好地做出關(guān)于 Java 中的 Spring 的決策。
3. Spring 生態(tài)系統(tǒng)的簡要概述
在我們開始對 Spring 框架進(jìn)行定性評估之前,讓我們仔細(xì)看看 Spring 生態(tài)系統(tǒng)是什么樣子的。
Spring 是在2003年的某個(gè)時(shí)候出現(xiàn)的,當(dāng)時(shí) Java 企業(yè)版發(fā)展迅速,開發(fā)企業(yè)應(yīng)用程序很令人興奮,但也很乏味!
Spring 最初是 Java 的 一個(gè)控制反轉(zhuǎn) (IoC)容器 。我們?nèi)匀恢饕獙?Spring 與它聯(lián)系起來,事實(shí)上,它構(gòu)成了框架的核心,以及在此基礎(chǔ)上開發(fā)的其他項(xiàng)目。
3.1. Spring 框架
Spring 框架 被劃分為多個(gè)模塊 ,這使得在任何應(yīng)用程序中都可以很容易地選擇要使用的部分:
Core :提供核心特性,如 DI (依賴注入)、國際化、驗(yàn)證和 AOP (面向切面編程)
Data Access :支持通過JTA ( Java事務(wù) API )、JPA (Java 持久性 API )和 JDBC (Java 數(shù)據(jù)庫連接)訪問數(shù)據(jù)
Web :同時(shí)支持 Servlet API( Spring MVC )和最近的反應(yīng)式 API( Spring WebFlux ),另外還支持WebSockets、STOMP 和 WebClient
Integration :支持通過 JMS(Java 消息服務(wù))、JMX (Java 管理擴(kuò)展)和 RMI (遠(yuǎn)程方法調(diào)用)集成到企業(yè) Java
Testing :通過模擬對象、測試裝置、上下文管理和緩存支持單元和集成測試
3.2. Spring 項(xiàng)目
但是,Spring 更有價(jià)值的是 一個(gè)強(qiáng)大的生態(tài)系統(tǒng),這個(gè)生態(tài)系統(tǒng)多年來一直在發(fā)展,并且還在不斷發(fā)展。 它們的結(jié)構(gòu)是 Spring 項(xiàng)目 ,它們是在 Spring 框架之上開發(fā)的。
盡管 Spring 項(xiàng)目的清單很長,而且一直在變化,但仍有一些值得一提的地方:
Boot :為我們提供了一組高度自定義但可擴(kuò)展的模板,用于在幾乎不花費(fèi)時(shí)間的情況下創(chuàng)建基于 Spring 的各種項(xiàng)目。它使使用嵌入式 Tomcat 或類似容器創(chuàng)建獨(dú)立的 Spring 應(yīng)用程序變得非常容易。
Cloud :提供支持輕松地開發(fā)一些常見的分布式系統(tǒng)模式,如服務(wù)發(fā)現(xiàn),斷路器,以及 API 網(wǎng)關(guān)。 它有助于我們減少在本地,遠(yuǎn)程甚至托管平臺(tái)中部署此類樣板模式的工作量。
Security :提供一種健壯的機(jī)制,以高度可定制的方式為基于 Spring 的項(xiàng)目開發(fā)身份驗(yàn)證和授權(quán)。通過最少的聲明性支持,我們可以獲得對常見攻擊的保護(hù),比如會(huì)話固定、點(diǎn)擊劫持和跨站點(diǎn)請求偽造。
Mobile :提供檢測設(shè)備并相應(yīng)地調(diào)整應(yīng)用程序行為的功能。此外,支持設(shè)備感知的視圖管理,以獲得最佳用戶體驗(yàn)、站點(diǎn)首選項(xiàng)管理和站點(diǎn)切換器。
Batch :提供輕量級(jí)框架,用于為數(shù)據(jù)歸檔等企業(yè)系統(tǒng)開發(fā)批處理應(yīng)用程序。對調(diào)度、重啟、跳過、收集指標(biāo)和日志記錄有直觀的支持。此外,還支持通過優(yōu)化和分區(qū)對大容量作業(yè)進(jìn)行擴(kuò)展。
毋庸置疑,這是對 Spring 所提供內(nèi)容的一個(gè)相當(dāng)抽象的介紹。但是它為我們提供了關(guān)于 Spring 的組織和廣度的足夠的基礎(chǔ),以便我們進(jìn)一步討論。
4. Spring 操作
人們習(xí)慣于添加一個(gè) hello world 程序來了解任何新技術(shù)。
讓我們來看看 Spring 如何讓編寫一個(gè)不僅僅是 Hello World 的程序變得輕松自如 。我們將創(chuàng)建一個(gè)應(yīng)用程序,該應(yīng)用程序?qū)?CRUD 操作公開為一個(gè)域?qū)嶓w(如由內(nèi)存數(shù)據(jù)庫支持的雇員)的 REST API。更重要的是,我們將使用基本認(rèn)證來保護(hù)我們的突變端點(diǎn)。最后,沒有好的、舊的單元測試,任何應(yīng)用程序都不能真正完成。
以上就是長沙牛耳教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“為什么選擇Spring作為Java 框架?java spring框架教程”的內(nèi)容,希望對大家有幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)視頻教程
spring4教程下載:http://www.bjpowernode.com/v60/
springmvc入門教程:http://www.bjpowernode.com/v40/
springboot菜鳥教程:http://www.bjpowernode.com/v102/