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