日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

spring api 中文_Spring高级技术梳理

發(fā)布時(shí)間:2025/3/19 javascript 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring api 中文_Spring高级技术梳理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

序言

本系列除了SpringData部分, 其余部分全部是基于SpringBoot 2.0以上版本, 更新則更強(qiáng), 盡量不與主流脫節(jié). 我們不是時(shí)代的弄潮兒, 我們只是先進(jìn)技術(shù)的追隨者~~~

SpringData部分

Spring全家桶之SpringData——預(yù)科階段講述了SpringData 所涉及的技術(shù)的簡(jiǎn)介HibernateJPA 標(biāo)準(zhǔn)Hibernate JPASpringDataSpringData JPASpringData RedisSpring全家桶之SpringData——Spring 整合Hibernate與Hibernate JpaHibernate是一種ORM框架,ORM全稱為 Object_Relative DateBase-Mapping,在Java對(duì)象與關(guān)系數(shù)據(jù)庫(kù)之間建立某種映射,以實(shí)現(xiàn)直接存取Java對(duì)象!在這里, 我們搭建了一個(gè)Hibernate簡(jiǎn)單環(huán)境 ,用來(lái)測(cè)試相關(guān)的語(yǔ)法 ,通過(guò)hibernate完成crud操作.并通過(guò)Hibernate實(shí)現(xiàn) HQL查詢(Hibernate Query Language) , SQL查詢 ,QBC查詢(QBC:Query By Criteria )。然后 , 又開(kāi)始Spring整合Hibernate JPA的學(xué)習(xí), 通過(guò)Hibernate JPA完成crud操作.并通過(guò)Hibernate Jpa實(shí)現(xiàn) HQL查詢(Hibernate Query Language) , SQL查詢 ,QBC查詢(QBC:Query By Criteria )。Spring全家桶之SpringData——Spring Data JPASpring Data JPA,即SpringData的Java持久層API , 是spring data 項(xiàng)目下的一個(gè)模塊。提供了一套基于JPA標(biāo)準(zhǔn)操作數(shù)據(jù)庫(kù)的簡(jiǎn)化方案。底層默認(rèn)的是依賴Hibernate JPA 來(lái)實(shí)現(xiàn)的。Spring Data JPA 的技術(shù)特點(diǎn):我們只需要定義接口并繼承Spring Data JPA 中所提供的接口就可以了。不需要編寫(xiě)接口實(shí)現(xiàn)類。即可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。在這里, 介紹他的相關(guān)注解以及持久層 ,持久化, 持久化的相關(guān)操作等關(guān)鍵術(shù)語(yǔ) ,然后進(jìn)行實(shí)戰(zhàn)應(yīng)用 : 搭建Spring Data JPA項(xiàng)目 .分別繼承了以下五個(gè)接口以及用戶自定義Repository接口的實(shí)現(xiàn)。

最后, 使用SpringData JPA實(shí)現(xiàn)實(shí)體關(guān)系映射操作 ,包括:
  • 一對(duì)一的關(guān)聯(lián)操作

  • 一對(duì)多的關(guān)聯(lián)操作

  • 多對(duì)多的關(guān)聯(lián)操作

Spring全家桶之SpringData——SpringData RedisSpringDataRedis是Spring Data大家族中的一個(gè)成員,提供了在 Spring 應(yīng)用中通過(guò)簡(jiǎn)單的配置訪問(wèn)redis服務(wù),對(duì)reids底層開(kāi)發(fā)包(Jedis, JRedis, and RJC)進(jìn)行了高度封裝,RedisTemplate提供了redis各種操作、異常處理及序列化,支持發(fā)布訂閱,并對(duì)spring 3.1 cache進(jìn)行了實(shí)現(xiàn)。在這里 ,我們通過(guò) SpringData技術(shù)整合了Redis ,實(shí)現(xiàn)了通過(guò) SpringData 操作Redis數(shù)據(jù)庫(kù)的功能。

SpringBoot部分

Spring全家桶之SpringBoot——初級(jí)階段Spring Boot 設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新Spring 應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程。他擁有嵌入的Tomcat,無(wú)需部署WAR 文件 , Spring Boot 并不是對(duì)Spring 功能上的增強(qiáng),而是提供了一種快速使用Spring 的方式。可以通過(guò)SpringBoot官網(wǎng) 快速構(gòu)建SpringBoot項(xiàng)目, 自動(dòng)為你生成啟動(dòng)類以及相關(guān)文件等。在SpringBoot的初級(jí)階段 ,學(xué)習(xí)了SpringBoot的啟動(dòng)器 以及編寫(xiě)了HelloWorld的入門(mén)案例 ;再學(xué)習(xí)了SpringBoot整合Web的開(kāi)發(fā), 包括整合Servlet ,Filter ,Listener ,靜態(tài)資源以及實(shí)現(xiàn)文件上傳功能 ;然后學(xué)習(xí)了 SpringBoot整合視圖層的技術(shù), 包括整合Jsp技術(shù),Thymeleaf技術(shù),以及freeMarker技術(shù);最后學(xué)習(xí)了SpringBoot整合Mybatis技術(shù)。Spring全家桶之SpringBoot——高級(jí)階段Spring Boot是一個(gè)簡(jiǎn)化Spring開(kāi)發(fā)的框架。用來(lái)監(jiān)護(hù)spring應(yīng)用開(kāi)發(fā),約定大于配置,去繁就簡(jiǎn),just run 就能創(chuàng)建一個(gè)獨(dú)立的,產(chǎn)品級(jí)的應(yīng)用。我們?cè)谑褂肧pring Boot時(shí)只需要配置相應(yīng)版本的SpringBoot父項(xiàng)目就可以用所有的Spring組件,簡(jiǎn)單的說(shuō),SpringBoot就是整合了很多優(yōu)秀的框架,不用我們自己手動(dòng)的去寫(xiě)一堆 xml 配置然后進(jìn)行配置。從本質(zhì)上來(lái)說(shuō),SpringBoot就是Spring,它做了那些沒(méi)有它你也會(huì)去做的Spring Bean配置。在SpringBoot的高級(jí)階段,我們首先學(xué)習(xí)了SpringBoot的數(shù)據(jù)校驗(yàn),即對(duì)前端 form表單的校驗(yàn), 包括對(duì)用戶名 ,密碼 ,年齡 ,郵箱等進(jìn)行校驗(yàn)。再學(xué)習(xí)了SpringBoot的異常處理與單元測(cè)試 , 捕獲指定異常 ,在自定義的頁(yè)面現(xiàn)實(shí)錯(cuò)誤信息。然后學(xué)習(xí)了SpringBoot的熱部署 , 令我們不需要手動(dòng)重啟項(xiàng)目即可使修改的代碼生效。然后學(xué)習(xí)了SpringBoot整合SpringData JPA五種接口的使用以及實(shí)體關(guān)系映射操作。

SpringCloud部分

Spring全家桶之SpringCloud——初級(jí)階段Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開(kāi)發(fā)便利性巧妙地簡(jiǎn)化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開(kāi)發(fā),如服務(wù)發(fā)現(xiàn)注冊(cè)、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開(kāi)發(fā)風(fēng)格做到一鍵啟動(dòng)和部署。Spring Cloud并沒(méi)有重復(fù)制造輪子,它只是將目前各家公司開(kāi)發(fā)的比較成熟、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來(lái),通過(guò)Spring Boot風(fēng)格進(jìn)行再封裝 , 屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,最終給開(kāi)發(fā)者留出了一套簡(jiǎn)單易懂、易部署和易維護(hù)的分布式系統(tǒng)開(kāi)發(fā)工具包。在SpringBoot的初級(jí)階段,我們首先學(xué)習(xí)了四種架構(gòu)風(fēng)格 ,MVC, RPC, SOA, 微服務(wù)架構(gòu)以及微服務(wù)的設(shè)計(jì)原則,特別是AKF拆分原則的學(xué)習(xí),再學(xué)習(xí)了SpringCloud的簡(jiǎn)介 ,版本號(hào)以及與子項(xiàng)目兼容介紹 ,與Dubbo的性能對(duì)比。然后進(jìn)入了SpringBoot實(shí)戰(zhàn)(做小項(xiàng)目), 官網(wǎng)快速構(gòu)建項(xiàng)目, 修改pom坐標(biāo)和全局配置文件 ,異常處理以及健康監(jiān)控。再然后進(jìn)入了RabbitMQ實(shí)戰(zhàn), 搭建環(huán)境并編寫(xiě)案例源碼, 三種交換器, 實(shí)現(xiàn)服務(wù)松耦合以及消息的處理。最后學(xué)習(xí)了Eureka注冊(cè)中心, 搭建Eureka服務(wù)注冊(cè)中心以及注冊(cè)中心集群, 并發(fā)布到指定虛擬機(jī)或服務(wù)器中。并且對(duì)Eureka進(jìn)行優(yōu)化, 優(yōu)雅停服的實(shí)現(xiàn), 講述Eureka的安全認(rèn)證。Spring全家桶之SpringCloud——高級(jí)階段(上)在SpringCloud高級(jí)階段的第一部分, 我們首先學(xué)習(xí)了負(fù)載均衡Ribbon ,服務(wù)之間的通訊方式有兩種 :一種是負(fù)載均衡 Ribbon ,一種是聲明式調(diào)用 FeignRibbon 是一個(gè)基于 Http 和 TCP 的客服端負(fù)載均衡工具,它是基于 Netflix Ribbon 實(shí)現(xiàn)的。它不像 spring cloud 服務(wù)注冊(cè)中心、配置中心、API 網(wǎng)關(guān)那樣獨(dú)立部署,但是它幾乎存在于每個(gè) spring cloud 微服務(wù)中。包括 feign 提供的聲明式服務(wù)調(diào)用也是基于該 Ribbon 實(shí)現(xiàn)的。ribbon 默認(rèn)提供很多種負(fù)載均衡算法, 例如: 輪詢、隨機(jī) 等等。甚至包含自定義的負(fù)載均衡算法。然后學(xué)習(xí)了聲明式調(diào)用 Feign ,Spring Cloud 的聲明式調(diào)用, 可以做到使用 HTTP 請(qǐng)求遠(yuǎn)程服務(wù)時(shí)能就像調(diào)用本地方法一樣的體驗(yàn),開(kāi)發(fā)者完全感知不到這是遠(yuǎn)程方法,更感知不到這是個(gè) HTTP 請(qǐng)求。它像 Dubbo 一樣,consumer 直接調(diào)用接口方法調(diào)用 provider,而不需要通過(guò)常規(guī)的 Http Client 構(gòu)造請(qǐng)求再解析返回?cái)?shù)據(jù)。它解決了讓開(kāi)發(fā)者調(diào)用遠(yuǎn)程接口就跟調(diào)用本地方法一樣,無(wú)需關(guān)注與遠(yuǎn)程的交互細(xì)節(jié),更無(wú)需關(guān)注分布式環(huán)境開(kāi)發(fā)。最后學(xué)習(xí)了服務(wù)容錯(cuò)保護(hù)Hystrix ,用來(lái)微服務(wù)項(xiàng)目因?yàn)檐浖蛴布虺霈F(xiàn)的雪崩效應(yīng), 它提供了五種解決方式:降級(jí), 隔離, 熔斷, 請(qǐng)求緩存, 請(qǐng)求合并. 我們將整合這五個(gè)方案結(jié)合案例源碼進(jìn)行學(xué)習(xí)。Spring全家桶之SpringCloud——高級(jí)階段(中)在SpringCloud高級(jí)階段的第二部分, 我們首先學(xué)習(xí)了微服務(wù)的常用的六種設(shè)計(jì)模式, 并進(jìn)行案例模擬。再學(xué)習(xí)了服務(wù)網(wǎng)關(guān)Zuul ,API網(wǎng)關(guān)是一個(gè)反向路由:屏蔽內(nèi)部細(xì)節(jié),為調(diào)用者提供統(tǒng)一入口,接收所有調(diào)用者請(qǐng)求,通過(guò)路由機(jī)制轉(zhuǎn)發(fā)到服務(wù)實(shí)例。API網(wǎng)關(guān)是一組“過(guò)濾器”集合:可以實(shí)現(xiàn)一系列與核心業(yè)務(wù)無(wú)關(guān)的橫切面功能,如安全認(rèn)證、限流熔斷、日志監(jiān)控。我們進(jìn)行了案例模擬, 然后總結(jié)了常用的路由規(guī)則 ,自定義網(wǎng)關(guān)過(guò)濾器(權(quán)限驗(yàn)證與異常處理), 網(wǎng)關(guān)容錯(cuò), 在高并發(fā)情況下, 實(shí)現(xiàn)限流打到自我保護(hù), 以及超時(shí)問(wèn)題解決。然后學(xué)習(xí)了分布式服務(wù)配置中心, 配置中心入門(mén)案例(配置中心客戶端和服務(wù)端的搭建), "GitHub的中文版-碼云"的使用方式, 配置中心配置文件的命名與訪問(wèn)規(guī)則, bootstrap與application的區(qū)別。最后學(xué)習(xí)了對(duì)配置文件的安全與加密, 使用對(duì)稱加密和非對(duì)稱加密算法 ,實(shí)現(xiàn)敏感數(shù)據(jù)加密( 例如數(shù)據(jù)庫(kù)的用戶名和密碼 )以及配置中心的用戶安全認(rèn)證的實(shí)現(xiàn), 在一定程度上保護(hù)了配置文件。Spring全家桶之SpringCloud——高級(jí)階段(下)在SpringCloud高級(jí)階段的第二部分, 我們首先學(xué)習(xí)了消息總線Bus,SpringCloud bus集成了市面上常用的消息代理 ,(RabbitMQ ,Kafka) ,連接服務(wù)中的所有節(jié)點(diǎn)。當(dāng)有數(shù)據(jù)有變更時(shí) ,可以通過(guò)代理廣播通知微服務(wù)及時(shí)變更數(shù)據(jù) ,例如微服務(wù)的配置更新。它的出現(xiàn)解決了微服務(wù)數(shù)據(jù)變更 , 及時(shí)同步問(wèn)題 .進(jìn)行了案例模擬.實(shí)現(xiàn)了采用bus 實(shí)現(xiàn)自動(dòng)刷新配置信息Sever( 服務(wù)端)與Client ( 客戶端)的刷新以及局部刷新的實(shí)現(xiàn)。然后習(xí)了消息驅(qū)動(dòng)Stream, Spring Cloud Stream是一個(gè)構(gòu)建消息驅(qū)動(dòng)微服務(wù)應(yīng)用的框架。它基于Spring Boot構(gòu)建獨(dú)立的、生產(chǎn)級(jí)的Spring應(yīng)用,并使用Spring Integration為消息代理提供鏈接。你可以添加@EnableBinding注解到你的應(yīng)用中來(lái)快速連接到消息代理,添加@StreamListener注解到一個(gè)方法上,這個(gè)方法會(huì)接收到Stream處理事件。進(jìn)行了案例模擬, 并實(shí)現(xiàn)了Stream消息的分組與分區(qū)。最后學(xué)習(xí)了分布式服務(wù)跟蹤Sleuth, 由于單體架構(gòu)變?yōu)槲⒎?wù)架構(gòu), 并且系統(tǒng)規(guī)模越來(lái)越大, 各個(gè)服務(wù)之間的關(guān)系變得越來(lái)越復(fù)雜, 這就是分布式服務(wù)跟蹤技術(shù)Sleuth出現(xiàn)的背景, 它能夠?yàn)槲覀兲峁╂溌纷粉?性能分析, 數(shù)據(jù)分析和優(yōu)化鏈路, 并為我們提供可視化界面. 通過(guò)將項(xiàng)目和ELK進(jìn)行整合 ,方便我們跟蹤分析日志。

SpringCloud技術(shù)拓展部分

Spring全家桶之SpringSession在這里, 我們首先學(xué)習(xí)了HttpSession, 他是 JavaWeb 服務(wù)端提供的用來(lái)建立與客戶端會(huì)話狀態(tài)的對(duì)象。介紹了SpringSession以及使用, 安裝redis單機(jī)版的教程, 共享簡(jiǎn)單數(shù)據(jù)以及自定義對(duì)象,設(shè)計(jì)Session的失效時(shí)間以及更換其序列化器。然后學(xué)習(xí)了Spring Session MongoDB, 他與HttpSession,不同之處是它是用MongoDB作為Session的緩存場(chǎng)所, 而后者使用的Redis作為緩存數(shù)據(jù)存放的場(chǎng)所. 但他們都是用來(lái)解決Session 共享問(wèn)題, 講解了MongoDB單機(jī)版的安裝, 共享簡(jiǎn)單數(shù)據(jù)以及自定義對(duì)象,設(shè)計(jì)Session的失效時(shí)間以及更換其序列化器。Spring全家桶之SpringSecuritySpringSecurity 是一個(gè)高度自定義的安全框架。利用 SpringIoC/DI和 AOP 功能,為系統(tǒng)提供了聲明式安全訪問(wèn)控制功能,減少了為系統(tǒng)安全而編寫(xiě)大量重復(fù)代碼的工作。正如你可能知道的兩個(gè)應(yīng)用程序的兩個(gè)主要區(qū)域是“認(rèn)證”和“授權(quán)”(或者訪問(wèn)控制)。這兩點(diǎn)也是 SpringSecurity 重要核心功能。“認(rèn)證”,是建立一個(gè)他聲明的主體的過(guò)程(一個(gè)“主體”一般是指用戶,設(shè)備或一些可以在你的應(yīng)用程序中執(zhí)行動(dòng)作的其他系統(tǒng)),通俗點(diǎn)說(shuō)就是系統(tǒng)認(rèn)為用戶是否能登錄。“授權(quán)”指確定一個(gè)主體是否允許在你的應(yīng)用程序執(zhí)行一個(gè)動(dòng)作的過(guò)程。通俗點(diǎn)講就是系統(tǒng)判斷用戶是否有權(quán)限去做某些事情。在這里,我們首先進(jìn)行了案例模擬, 講解了UserDetailsService 的作用,自定義登陸邏輯與登陸頁(yè)面。然后學(xué)習(xí)了認(rèn)證過(guò)程中的其他常用配置,訪問(wèn)控制url的配置, 內(nèi)置方法的介紹以及角色權(quán)限的判斷。再然后學(xué)習(xí)自定義403(權(quán)限不足)頁(yè)面的處理, 常見(jiàn)狀態(tài)碼介紹, 基于表達(dá)式和注解的訪問(wèn)控制。最后學(xué)習(xí)了RememberMe(免登陸)功能的實(shí)現(xiàn), 然后在學(xué)習(xí)Spring Security 中的CSRF后華麗落幕。Spring全家桶之分布式事務(wù)處理技術(shù)之LCN分布式事務(wù)是指事務(wù)的參與者、支持事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上。在設(shè)計(jì)LCN框架之初的1.0 ~ 2.0 的版本時(shí),框架設(shè)計(jì)的步驟是如下的,各取其首字母得來(lái)的LCN 命名。LCN: 鎖定事務(wù)單元(lock)、確認(rèn)事務(wù)模塊狀態(tài)(confirm)、通知事務(wù)(notify) , 他的宗旨 : LCN 并不生產(chǎn)事務(wù),LCN 只是本地事務(wù)的協(xié)調(diào)工。在這里我們通過(guò)案例模擬的形式, 學(xué)習(xí)了使用LCN 實(shí)現(xiàn)分布式事務(wù)處理服務(wù)端和服務(wù)端的配置并實(shí)現(xiàn)相關(guān)功能。以及有待解決的功能——在服務(wù)網(wǎng)關(guān)中配置LCN。這里需要注意的是本博文介紹的分布式事務(wù)處理是基于SpringCloud 的環(huán)境下實(shí)現(xiàn)的。

結(jié)語(yǔ)

希望能夠幫到大家, 同時(shí)也希望通過(guò)總結(jié)提升, 能夠幫助自己建立起一套屬于自己的Spring知識(shí)體系。

總結(jié)

以上是生活随笔為你收集整理的spring api 中文_Spring高级技术梳理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。