国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring詳解簡(jiǎn)介

這篇具有很好參考價(jià)值的文章主要介紹了Spring詳解簡(jiǎn)介。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Spring詳解簡(jiǎn)介1、Spring的簡(jiǎn)介

?文章來源地址http://www.zghlxwxcb.cn/news/detail-428437.html

Spring的英文翻譯為春天,可以說是給Java程序員帶來了春天,因?yàn)樗鼧O大的簡(jiǎn)化了開發(fā)。我得出一個(gè)公式:Spring = 春天 = Java程序員的春天 = 簡(jiǎn)化開發(fā)。最后的簡(jiǎn)化開發(fā)正是Spring框架帶來的最大好處。

?

Spring是一個(gè)開放源代碼的設(shè)計(jì)層面框架,它是于2003 年興起的一個(gè)輕量級(jí)的Java 開發(fā)框架。由Rod Johnson創(chuàng)建,其前身為Interface21框架,后改為了Spring并且正式發(fā)布。Spring是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。它解決的是業(yè)務(wù)邏輯層和其他各層的松耦合問題,因此它將面向接口的編程思想貫穿整個(gè)系統(tǒng)應(yīng)用??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個(gè)組件,同時(shí)為 J2EE 應(yīng)用程序開發(fā)提供集成的框架。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。簡(jiǎn)單來說,Spring是一個(gè)分層的JavaSE/EE full-stack(一站式) 輕量級(jí)開源框架。Spring 的理念:不去重新發(fā)明輪子。其核心是控制反轉(zhuǎn)(IOC)和面向切面(AOP)。

?

回到頂部

2、Spring的起源與發(fā)展

在2002年10月,由Rod Johnson 編著的書名為《Expert One-to-One J2EE Design and Development》一書中,對(duì)Java EE 系統(tǒng)框架臃腫、低效、脫離現(xiàn)實(shí)的種種現(xiàn)狀提出了質(zhì)疑,并闡述了 J2EE 使用 EJB 開發(fā)設(shè)計(jì)的優(yōu)點(diǎn)及解決方案,他提出了一個(gè)基于普通 Java 類和依賴注入的更簡(jiǎn)單的解決方案。然后以此書為指導(dǎo)思想,他編寫了interface21框架,這是一個(gè)力圖沖破J2EE傳統(tǒng)開發(fā)的困境,從實(shí)際需求出發(fā),著眼于輕便、靈巧,易于開發(fā)、測(cè)試和部署的輕量級(jí)開發(fā)框架。Spring框架即以interface21框架為基礎(chǔ),經(jīng)過重新設(shè)計(jì),并不斷豐富其內(nèi)涵,于2004年3月24日,發(fā)布了1.0正式版。同年他又推出了一部堪稱經(jīng)典的力作《Expert one-on-one J2EE Development without EJB》,該書在Java世界掀起了軒然大波,不斷改變著Java開發(fā)者程序設(shè)計(jì)和開發(fā)的思考方式。在該書中,作者根據(jù)自己多年豐富的實(shí)踐經(jīng)驗(yàn),對(duì)EJB的各種笨重臃腫的結(jié)構(gòu)進(jìn)行了逐一的分析和否定,并分別以簡(jiǎn)潔實(shí)用的方式替換之。至此一戰(zhàn)功成,Rod Johnson成為一個(gè)改變Java世界的大師級(jí)人物。值得注意的是,Rod Johnson是悉尼大學(xué)的博士,然而他的專業(yè)不是計(jì)算機(jī),而是音樂學(xué)。

?

Spring框架自從發(fā)布以來,就得到快速發(fā)展,經(jīng)過時(shí)代的驗(yàn)證,現(xiàn)在已經(jīng)是最受歡迎的企業(yè)級(jí) Java 應(yīng)用程序開發(fā)框架,數(shù)以百萬的來自世界各地的開發(fā)人員使用 Spring 框架來創(chuàng)建性能好、易于測(cè)試、可重用的代碼。從2004發(fā)布的第一個(gè)Spring版本,到現(xiàn)在已經(jīng)更新到第五個(gè)Spring版本了,我們下面來看看各個(gè)版本的變化。

?

image

?

(1) Spring 1.x

?

在2004年3月24日,Spring Framework 1.0 final正式發(fā)布,Spring 1.0當(dāng)時(shí)只包含一個(gè)完整的項(xiàng)目,他把所有的功能都集中在一個(gè)項(xiàng)目中,其中包含了核心的IOC、AOP,同時(shí)也包含了其它的諸多功能,例如:JDBC、Mail、ORM、事務(wù)、定時(shí)任務(wù)、Spring MVC等等。由于Spring超前的眼光和博大的精神,在第一個(gè)版本的時(shí)候已經(jīng)支持了很多第三方的框架,例如:Hibernate、ibatis、模板引擎等。所有自發(fā)布以來,Spring 框架迅速發(fā)展。但是此時(shí)的Spring只支持基于XML的配置。

?

(2) Spring 2.x

?

Spring 2.0 于 2006年10月發(fā)布,到那時(shí),Spring的下載量已經(jīng)超過了 100 萬。Spring 2.0中新增的特性有:具有可擴(kuò)展的 XML 配置功能,用于簡(jiǎn)化 XML 配置,即對(duì)注解的支持,支持了基于注解的配置,支持 Java 5,額外的 IoC 容器擴(kuò)展點(diǎn),支持動(dòng)態(tài)語言(BeanShell)。

?

2007年11月Interface21公司更名為SpringSource。同時(shí)發(fā)布了Spring 2.5。 Spring 2.5中的主要新功能包括支持Java 6 和Java EE 5,支持配置注釋,支持自動(dòng)檢測(cè)和兼容組件的類路徑和OSGi兼容bundle。2007年,SpringSource從benchmark capital獲得了1000萬美元A輪投資。

?

2009年8月,SpringSource以4.2億美元被VMWare收購,SpringSource又在幾周內(nèi)收購了cloud foundry,這是一家云PaaS供應(yīng)商。

?

(3) Spring 3.x

?

Spring 3.0 于2009 年 12 月發(fā)布,此時(shí)的Spring正式托管到GitHub上,我們可以GitHub的網(wǎng)站查看:https://github.com/spring-projects/spring-framework,Spring 3.0 增加許多重要特性,如重組模塊系統(tǒng),支持 Spring 表達(dá)式語言,基于 Java 的 bean 配置(JavaConfig),支持嵌入式數(shù)據(jù)庫(如 HSQL,H2 和 Derby),模型驗(yàn)證/ REST 支持和對(duì) Java EE 的支持。

?

2011年和2012年發(fā)布了許多3.x系列的小版本。2012年7月,Rod Johnson離開了Spring團(tuán)隊(duì)。2013年4月,VMware和EMC通過GE投資創(chuàng)建了一家名為Pivotal的合資企業(yè)。所有的Spring項(xiàng)目都轉(zhuǎn)移到了Pivotal。

?

(4) Spring 4.x

?

2013年12 月,Pivotal 宣布發(fā)布Spring框架4.0。Spring 4.0 是 Spring 框架的一大進(jìn)步,它包含了對(duì)Java 8 的全面支持,支持Lambda表達(dá)式的使用,更高的第三方庫依賴性(groovy 1.8+,ehcache 2.1+,hibernate 3.6+等),提供了對(duì)@Scheduled和@PropertySource重復(fù)注解的支持,提供了空指針終結(jié)者Optional,對(duì)核心容器進(jìn)行增加:支持泛型的依賴注入、Map的依賴注入、Lazy延遲依賴的注入、List注入、Condition條件注解注入、對(duì)CGLib動(dòng)態(tài)代理類進(jìn)行了增強(qiáng),對(duì)groovy DSL for bean 定義支持,Spring MVC基于Servlet 3.0 開發(fā),并且為了方便Restful開發(fā),引入了新的RestController注解器注解,同時(shí)還增加了一個(gè)AsyncRestTemplate支持Rest客戶端的異步無阻塞請(qǐng)求,對(duì) websockets 的支持以及對(duì)泛型類型的支持作為注入 bean 的限定符。

?

2014 年至 2017 年期間發(fā)布了許多 Spring 框架 4.xx 系列版本。

?

(5) Spring 5.x

?

Spring 5.0于 2017年 9月28日發(fā)布了通用版本 (GA)。Spring 5.0開始支持Java EE 7,同時(shí)兼容JDK9,但是Spring 5的運(yùn)行環(huán)境最低要求是Java8以上,全面支持Servlet 3.1。其中新增的響應(yīng)式編程是 SpringFramework5.0 最重要的特性之一、WebFlux框架(全新的模塊Spring WebFlux用于替代老的 Spring-webmvc)、對(duì)Kotlin也有了更好的支持等等。

?

目前最新的版本如下(https://spring.io/projects/spring-framework#learn):

?

image

?

由于Spring一直在保持更新,而更新的內(nèi)容都是做一些優(yōu)化或者是新增一些特性,之前版本的特性基本都會(huì)保留,所以我們完全可以直接使用最新版本,本系列文章都使用的是Spring5。

?

回到頂部

3、Spring的組成模塊

Spring框架包含的功能大約由20個(gè)小模塊組成。這些模塊按組可分為核心容器(Core Container)、數(shù)據(jù)訪問/集成(Data Access/Integration)、Web、面向切面編程(AOP和Aspects)、設(shè)備(Instrumentation)、消息(Messaging)和測(cè)試(Test)。如下圖所示:

?

image

?

下面對(duì)各個(gè)模塊進(jìn)行詳細(xì)介紹:(這些模塊我們也可以在Spring的GitHub上查看到:https://github.com/spring-projects/spring-framework)

?

(1) 核心容器(Core Container)——Beans、Core、Context、Expression

?

該層由4個(gè)模塊組成:spring-beans spring-core spring-context spring-expression(spring expression Language,SpEl) 。它們對(duì)應(yīng)的jar包如下:

?

spring-core:該模塊是依賴注入IoC與DI的最基本實(shí)現(xiàn)。

spring-beans:該模塊是Bean工廠與bean的裝配。

spring-context:該模塊構(gòu)架于核心模塊之上,它擴(kuò)展了 BeanFactory,為它添加了 Bean 生命周期控制、框架事件體系以及資源加載透明化等功能。ApplicationContext 是該模塊的核心接口,它的超類是 BeanFactory。與BeanFactory 不同,ApplicationContext 容器實(shí)例化后會(huì)自動(dòng)對(duì)所有的單實(shí)例 Bean 進(jìn)行實(shí)例化與依賴關(guān)系的裝配,使之處于待用狀態(tài)。

spring-context-indexer:該模塊是 Spring 的類管理組件和 Classpath 掃描。

spring-context-support:該模塊是對(duì) Spring IOC 容器的擴(kuò)展支持,以及 IOC 子容器。

spring-expression:該模塊是Spring表達(dá)式語言塊是統(tǒng)一表達(dá)式語言(EL)的擴(kuò)展模塊,可以查詢、管理運(yùn)行中的對(duì)象,同時(shí)也方便的可以調(diào)用對(duì)象方法、操作數(shù)組、集合等。

(2) 數(shù)據(jù)訪問與集成(Data Access/Integration)——Jdbc、Orm、Oxm、Jms、Transactions

?

該層由spring-jdbc、spring-tx、spring-orm、spring-jms 和 spring-oxm 5 個(gè)模塊組成。它們對(duì)應(yīng)的jar包如下:

?

spring-jdbc:該模塊提供了 JDBC抽象層,它消除了冗長(zhǎng)的 JDBC 編碼和對(duì)數(shù)據(jù)庫供應(yīng)商特定錯(cuò)誤代碼的解析。

spring-tx:該模塊支持編程式事務(wù)和聲明式事務(wù),可用于實(shí)現(xiàn)了特定接口的類和所有的 POJO 對(duì)象。編程式事務(wù)需要自己寫beginTransaction()、commit()、rollback()等事務(wù)管理方法,聲明式事務(wù)是通過注解或配置由 spring 自動(dòng)處理,編程式事務(wù)粒度更細(xì)。

spring-orm:該模塊提供了對(duì)流行的對(duì)象關(guān)系映射 API的集成,包括 JPA、JDO 和 Hibernate 等。通過此模塊可以讓這些 ORM 框架和 spring 的其它功能整合,比如前面提及的事務(wù)管理。

spring-oxm:該模塊提供了對(duì) OXM 實(shí)現(xiàn)的支持,比如JAXB、Castor、XML Beans、JiBX、XStream等。

spring-jms:該模塊包含生產(chǎn)(produce)和消費(fèi)(consume)消息的功能。從Spring 4.1開始,集成了 spring-messaging 模塊。

(3) Web——Web、Webmvc、WebFlux、Websocket

?

該層由 spring-web、spring-webmvc、spr

?

到了這里,關(guān)于Spring詳解簡(jiǎn)介的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 相機(jī)專業(yè)模型詳解,各個(gè)參數(shù)作用,專業(yè)模式英文全稱和縮寫

    ISO(感光度) 全稱: International Organization for Standardization 縮寫: ISO Shutter Speed(快門速度) 全稱: Shutter Speed 縮寫: SS Aperture(光圈大?。?全稱: Aperture 縮寫: A White Balance(白平衡) 全稱: White Balance 縮寫: WB Exposure Compensation(曝光補(bǔ)償) 全稱: Exposure Compensation 縮寫:

    2024年02月03日
    瀏覽(33)
  • ChatGPT是智能硬件的春天

    ChatGPT是智能硬件的春天

    ????????智能音箱,一度被亞馬遜帶領(lǐng)引爆。 ????????國內(nèi)京東,阿里,百度,小米,騰訊等廠家參下,蓬勃發(fā)展。 ????????然而,在2021到2022年,智能音箱就可開始下滑,叮咚音箱退出歷史舞臺(tái)。 ????????轉(zhuǎn)機(jī)出現(xiàn)在2022年底,2023年初,openai旗下的這款chatGPT產(chǎn)

    2024年02月02日
    瀏覽(16)
  • OpenCV 編譯為java依賴最佳實(shí)踐

    OpenCV 編譯為java依賴最佳實(shí)踐

    opencv 編譯為java依賴最佳實(shí)踐 OpenCV使用領(lǐng)域越來越廣,但作為c++開源軟件,作者更新維護(hù)并不及時(shí),另外其他第三方j(luò)ava轉(zhuǎn)換方式更加無法及時(shí)同步最新版本。 最新版本為4.9.0(20240124) 使用JavaCV,包含組件較多,大而全,無法及時(shí)推出stable發(fā)行版; org.bytedeco, 目前開發(fā)版兼容,

    2024年04月24日
    瀏覽(15)
  • wordpress搭建中英文雙語言或多語言的網(wǎng)站詳解

    建立多語言切換的網(wǎng)站有兩種方式,一種是子域名形式,另一種則是子目錄形式。而以這兩種形式建站,中文站點(diǎn)和外文站點(diǎn)都是獨(dú)立的網(wǎng)站,這就相當(dāng)于是兩個(gè)網(wǎng)站,站長(zhǎng)需要對(duì)這兩個(gè)網(wǎng)站進(jìn)行設(shè)置及維護(hù)。并不是只要建立好中文站點(diǎn),外文站點(diǎn)就會(huì)自動(dòng)翻譯。 以子目錄的

    2023年04月23日
    瀏覽(20)
  • PE文件反編譯為python腳本流程

    PE文件反編譯為python腳本流程

    DetectltEasy、PeiD查殼 常見打包工具PyInstaller,脫殼方法 (1)用pyinstxtractor.py脫殼,用”python pyinstxtractor.py 1.exe“命令,生成“.exe文件名_extracted” (2)用pyinstaller脫殼,之后可用pyi-archive_viewer +exe文件名查看 exe 內(nèi)部的文件結(jié)構(gòu) 下載:pip install pyinstaller 使用:pyinstaller 1.exe、

    2023年04月25日
    瀏覽(16)
  • Python程序編譯為動(dòng)態(tài)庫pyd進(jìn)行加密

    Python程序編譯為動(dòng)態(tài)庫pyd進(jìn)行加密

    目錄 1. 寫一段Python代碼 2. 準(zhǔn)備編譯環(huán)境 3. 開始編譯 4. 調(diào)用(以Windows系統(tǒng)為例) 首先敲一段代碼,這里在名為 data.py 的Python文件中寫下一個(gè)求兩數(shù)之和的簡(jiǎn)單函數(shù),函數(shù)名為 i_sum ; 需要注意一個(gè)問題,除了代碼前兩行常見內(nèi)容, 第3行 添加? # cython: language_level=3 ,以在Pytho

    2024年02月16日
    瀏覽(14)
  • ChatGPT引爆AIGC,垂類龍頭迎來“創(chuàng)新春天”

    ChatGPT引爆AIGC,垂類龍頭迎來“創(chuàng)新春天”

    文|智能相對(duì)論 作者|陳壹 一款A(yù)I產(chǎn)品,到底有多神? ChatGPT刷新了我們的認(rèn)知。 它用2個(gè)月時(shí)間,完成TikTok花9個(gè)月,Instagram花2年半才做到的事,成為史上用戶增速最快破億的消費(fèi)級(jí)應(yīng)用程序。 它也憑借一己之力,讓谷歌內(nèi)部拉響警報(bào),讓百度、阿里、騰訊等國內(nèi)迅速行動(dòng),也

    2024年02月09日
    瀏覽(15)
  • PySide6 將.ui文件編譯為.py文件

    PySide6 將.ui文件編譯為.py文件

    1. 制作UI 平時(shí)使用QT creator設(shè)計(jì)器設(shè)計(jì)UI,然后可將其轉(zhuǎn)化成 .py 文件,以供 .py 腳本使用。 2.Pyside6 轉(zhuǎn)換ui為 .py 文件 pyside6使用過程: 生成的py文件: 3. .py 文件國際化 通過pyside6-uic生成的 .py 代碼中,中文或文本將使用unicode表示,即:“機(jī)器人設(shè)置”(u\\\"u673au5668u4ebau8bbeu

    2024年02月12日
    瀏覽(36)
  • 世界杯將至,體育類加密項(xiàng)目迎來春天?

    世界杯將至,體育類加密項(xiàng)目迎來春天?

    8 月 16 日,2022 年世界杯足球賽 (The FIFA World Cup) 正式進(jìn)入倒計(jì)時(shí) 100 天,與足球有關(guān)的加密板塊開始活躍,特別是?NFT。 涵蓋球迷的體育粉絲經(jīng)濟(jì)服務(wù)平臺(tái) Chiliz 的原生 Token CHZ 在近 7 天內(nèi)漲幅為 42%,近 30 天內(nèi)漲幅為 95%。分析人士認(rèn)為,世界杯臨近推動(dòng)了 CHZ 的上漲。 除了

    2024年02月07日
    瀏覽(29)
  • 【AI繪畫】絕美春天插畫,人人都是插畫師

    【AI繪畫】絕美春天插畫,人人都是插畫師

    春天,自然界重新蘇醒,生機(jī)勃勃,百花爭(zhēng)艷,萬籟俱寂。一切都被新的生命活力所染上。春風(fēng)拂面,一股清新的空氣流過,仿佛帶著一種神秘的力量,讓人心曠神怡,心情舒暢、輕松愉悅。 突然,一股靈感爬進(jìn)腦海,我連忙打開電腦,進(jìn)入 APISpace ,使用 AI作畫(圖像生成

    2024年02月09日
    瀏覽(14)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包