摘要:除此之外,還為不同的應(yīng)用程序體系結(jié)構(gòu)提供了基礎(chǔ)支持,包括消息傳遞事務(wù)數(shù)據(jù)和持久性以及,它還包括基于的框架,以及與之并行的反應(yīng)性框架。還支持依賴項(xiàng)注入和公共注解規(guī)范,應(yīng)用程序開發(fā)人員可以選擇使用這些規(guī)范,而不是提供的特定于的機(jī)制。
概述
Spring使創(chuàng)建Java企業(yè)應(yīng)用程序變得很容易,它提供了在企業(yè)環(huán)境中使用Java語(yǔ)言所需要的一切,支持Groovy和Kotlin作為JVM上的替代語(yǔ)言,并根據(jù)應(yīng)用程序的需求靈活地創(chuàng)建多種體系結(jié)構(gòu),從Spring Framework 5.1開始,Spring需要JDK 8+(Java SE 8+),并為JDK 11 LTS提供開箱即用的支持。
Spring支持廣泛的應(yīng)用程序場(chǎng)景,在大型企業(yè)中,應(yīng)用程序通常存在很長(zhǎng)時(shí)間,并且必須運(yùn)行在JDK和應(yīng)用服務(wù)器上,升級(jí)周期超出了開發(fā)人員的控制。其他的可以作為一個(gè)多帶帶的jar運(yùn)行,并嵌入服務(wù)器,可能是在云環(huán)境中,還有一些可能是不需要服務(wù)器的獨(dú)立應(yīng)用程序(例如批處理或集成工作負(fù)載)。
Spring是開源的,它擁有一個(gè)大型且活躍的社區(qū),該社區(qū)基于各種實(shí)際用例提供持續(xù)的反饋,這幫助Spring在很長(zhǎng)一段時(shí)間內(nèi)成功地發(fā)展。
我們所說的“Spring”是什么意思“Spring”一詞在不同的上下文中有不同的含義,它可以用來(lái)引用Spring Framework項(xiàng)目本身,這是它開始的地方,隨著時(shí)間的推移,其他Spring項(xiàng)目已經(jīng)構(gòu)建在Spring Framework之上,大多數(shù)情況下,當(dāng)人們說“Spring”,他們指的是整個(gè)家庭的項(xiàng)目,這個(gè)參考文檔主要關(guān)注基礎(chǔ):Spring Framework本身。
Spring Framework被劃分為多個(gè)模塊,應(yīng)用程序可以選擇它們需要哪些模塊,核心是核心容器的模塊,包括配置模型和依賴注入機(jī)制。除此之外,Spring Framework還為不同的應(yīng)用程序體系結(jié)構(gòu)提供了基礎(chǔ)支持,包括消息傳遞、事務(wù)數(shù)據(jù)和持久性以及web,它還包括基于servlet的Spring MVC web框架,以及與之并行的Spring WebFlux反應(yīng)性web框架。
關(guān)于模塊的說明:Spring的框架jar允許部署到JDK 9的模塊路徑(“Jigsaw”)。為了在支持jigsaw的應(yīng)用程序中使用,Spring Framework 5 jar附帶“Automatic-Module-Name”清單條目,其中定義了穩(wěn)定的語(yǔ)言級(jí)模塊名稱("spring.core"、"spring.context"等),獨(dú)立于jar工件名稱(jar遵循相同的命名模式,使用“-”代替“.”,例如“spring-core”,“spring-context”),當(dāng)然,Spring的框架jar在JDK 8和9+的類路徑上都能很好地工作。
Spring和Spring Framework的歷史Spring是在2003年作為對(duì)早期J2EE規(guī)范復(fù)雜性的響應(yīng)而出現(xiàn)的,雖然有些人認(rèn)為Java EE和Spring是競(jìng)爭(zhēng)對(duì)手,但Spring實(shí)際上是Java EE的補(bǔ)充,Spring編程模型不包含Java EE平臺(tái)規(guī)范,相反,它集成了從EE保護(hù)傘中精心選擇的各個(gè)規(guī)范:
Servlet API(JSR 340)
WebSocket API(JSR 356)
并發(fā)實(shí)用程序(JSR 236)
JSON綁定API(JSR 367)
Bean驗(yàn)證(JSR 303)
JPA(JSR 338)
JMS(JSR 914)
以及JTA/JCA設(shè)置,以便在必要時(shí)進(jìn)行事務(wù)協(xié)調(diào)。
Spring Framework還支持依賴項(xiàng)注入(JSR 330)和公共注解(JSR 250)規(guī)范,應(yīng)用程序開發(fā)人員可以選擇使用這些規(guī)范,而不是Spring Framework提供的特定于Spring的機(jī)制。
從Spring Framework 5.0開始,Spring最小需要Java EE 7級(jí)別(例如Servlet 3.1 +、JPA 2.1 +),同時(shí)提供開箱即用的集成與更新的API在Java EE 8級(jí)別(例如Servlet 4.0、JSON綁定API)在運(yùn)行時(shí)遇到,這使得Spring與Tomcat 8和Tomcat 9、WebSphere 9和JBoss EAP 7完全兼容。
隨著時(shí)間的推移,Java EE在應(yīng)用程序開發(fā)中的角色已經(jīng)發(fā)生了變化,在Java EE和Spring的早期,創(chuàng)建應(yīng)用程序是為了部署到應(yīng)用服務(wù)器。今天,在Spring Boot的幫助下,應(yīng)用程序以一種devops和云友好的方式創(chuàng)建,嵌入了Servlet容器,而且更改起來(lái)很簡(jiǎn)單。從Spring Framework 5開始,WebFlux應(yīng)用程序甚至不直接使用Servlet API,并且可以運(yùn)行在不是Servlet容器的服務(wù)器上(比如Netty)。
Spring繼續(xù)創(chuàng)新和發(fā)展,除了Spring Framework之外,還有其他項(xiàng)目,比如Spring Boot、Spring Security、Spring Data、Spring Cloud、Spring Batch等等,重要的是要記住,每個(gè)項(xiàng)目都有自己的源代碼存儲(chǔ)庫(kù)、問題跟蹤器和發(fā)布節(jié)奏。
設(shè)計(jì)理念當(dāng)你學(xué)習(xí)一個(gè)框架時(shí),重要的是不僅要知道它做什么,還要知道它遵循什么原則,以下是Spring Framework的指導(dǎo)原則:
在每個(gè)層次上提供選擇,Spring允許你盡可能推遲設(shè)計(jì)決策,例如,你可以通過配置切換持久性提供者,而無(wú)需更改代碼,對(duì)于許多其他基礎(chǔ)設(shè)施問題以及與第三方API的集成也是如此。
適應(yīng)不同的視角,Spring支持靈活性,并且不對(duì)應(yīng)該如何做事情發(fā)表意見,它支持具有不同視角的廣泛應(yīng)用程序需求。
保持強(qiáng)大的向后兼容性,Spring的發(fā)展已經(jīng)被小心地管理,以在版本之間強(qiáng)制進(jìn)行很少的破壞性更改,Spring支持精心選擇的JDK版本和第三方庫(kù),以方便維護(hù)依賴于Spring的應(yīng)用程序和庫(kù)。
關(guān)注API設(shè)計(jì),Spring團(tuán)隊(duì)投入了大量的思想和時(shí)間來(lái)開發(fā)直觀的API,并支持多個(gè)版本和許多年。
為代碼質(zhì)量設(shè)定高標(biāo)準(zhǔn),Spring Framework非常強(qiáng)調(diào)有意義的、當(dāng)前的和準(zhǔn)確的javadoc,它是極少數(shù)可以聲明干凈代碼結(jié)構(gòu)且包之間沒有循環(huán)依賴關(guān)系的項(xiàng)目之一。
入門如果你剛剛開始使用Spring,你可能希望通過創(chuàng)建一個(gè)基于Spring boot的應(yīng)用程序來(lái)開始使用Spring Framework,Spring Boot提供了一種快速(且固定)的方法來(lái)創(chuàng)建基于Spring的可生產(chǎn)應(yīng)用程序,它基于Spring Framework,支持約定而不是配置,旨在讓你盡可能快地啟動(dòng)和運(yùn)行。
你可以使用start.spring.io生成一個(gè)基本項(xiàng)目或遵循“入門”指南之一,例如開始構(gòu)建RESTful Web服務(wù)。這些指南不僅更容易理解,而且非常專注于任務(wù),其中大多數(shù)都是基于Spring Boot的,它們還涵蓋了Spring portfolio中的其他項(xiàng)目,你在解決特定問題時(shí)可能需要考慮這些項(xiàng)目。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/75719.html
摘要:容器概述接口表示容器,負(fù)責(zé)實(shí)例化配置和組裝?;诘脑獢?shù)據(jù)不是惟一允許的配置元數(shù)據(jù)形式,容器本身與實(shí)際編寫配置元數(shù)據(jù)的格式完全解耦,現(xiàn)在,許多開發(fā)人員為他們的應(yīng)用程序選擇基于的配置。 容器概述 org.springframework.context.ApplicationContext接口表示Spring IoC容器,負(fù)責(zé)實(shí)例化、配置和組裝bean。容器通過讀取配置元數(shù)據(jù)獲取關(guān)于要實(shí)例化...
摘要:概述容器管理一個(gè)或多個(gè),這些是使用你提供給容器的配置元數(shù)據(jù)創(chuàng)建的例如,以定義的形式。在容器內(nèi)部,這些定義被表示為對(duì)象,其中包含其他信息以下元數(shù)據(jù)包限定的類名通常,定義的實(shí)際實(shí)現(xiàn)類。 Bean概述 Spring IoC容器管理一個(gè)或多個(gè)bean,這些bean是使用你提供給容器的配置元數(shù)據(jù)創(chuàng)建的(例如,以XML 定義的形式)。 在容器內(nèi)部,這些bean定義被表示為BeanDefinitio...
摘要:容器和介紹本章介紹了控制反轉(zhuǎn)原理的實(shí)現(xiàn),也稱為依賴注入。在中,構(gòu)成應(yīng)用程序主干并由容器管理的對(duì)象稱為,是由容器實(shí)例化組裝和管理的對(duì)象,否則,只是應(yīng)用程序中的許多對(duì)象之一,及其之間的依賴關(guān)系反映在容器使用的配置元數(shù)據(jù)中。 Spring IoC容器和bean介紹 本章介紹了控制反轉(zhuǎn)(IoC)原理的Spring Framework實(shí)現(xiàn),IoC也稱為依賴注入(DI)。它是一個(gè)過程,對(duì)象僅通過構(gòu)...
摘要:簡(jiǎn)單明了,如果婚介給我們的人選不符合要求,我們就會(huì)拋出異常。的一個(gè)重點(diǎn)是在系統(tǒng)運(yùn)行中,動(dòng)態(tài)的向某個(gè)對(duì)象提供它所需要的其他對(duì)象。切點(diǎn)通過一個(gè)條件來(lái)匹配要攔截的類,這個(gè)條件稱為切點(diǎn)。 特點(diǎn) 1. IOC/依賴注入 IOC就是一個(gè)負(fù)責(zé)控制管理對(duì)象生命周期和對(duì)象間關(guān)系的容器。IOC讓程序員用關(guān)注怎么去創(chuàng)建對(duì)象,不必再為單實(shí)例模式類、屬性文件解析等這些很底層的需求編寫代碼,而是關(guān)注對(duì)象創(chuàng)建之后的...
摘要:注解從版開始,的緩存抽象完全支持標(biāo)準(zhǔn)注解和以及和。使用方法調(diào)用的結(jié)果更新緩存,要求將其作為使用注解的參數(shù)傳遞給它由于這種差異,允許在實(shí)際方法調(diào)用之前或之后更新緩存。非常相似,當(dāng)方法調(diào)用導(dǎo)致異常時(shí),支持條件驅(qū)逐。 JCache(JSR-107)注解 從4.1版開始,Spring的緩存抽象完全支持JCache標(biāo)準(zhǔn)注解:@CacheResult、@CachePut、@CacheRemove和...
閱讀 1219·2021-11-25 09:43
閱讀 1736·2021-09-13 10:25
閱讀 2696·2021-09-09 11:38
閱讀 3578·2021-09-07 10:14
閱讀 1805·2019-08-30 15:52
閱讀 705·2019-08-30 15:44
閱讀 3663·2019-08-29 13:23
閱讀 2043·2019-08-26 13:33