當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
spring api 中文_Spring高级技术梳理
生活随笔
收集整理的這篇文章主要介紹了
spring api 中文_Spring高级技术梳理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
序言
本系列除了SpringData部分, 其余部分全部是基于SpringBoot 2.0以上版本, 更新則更強, 盡量不與主流脫節. 我們不是時代的弄潮兒, 我們只是先進技術的追隨者~~~SpringData部分
Spring全家桶之SpringData——預科階段講述了SpringData 所涉及的技術的簡介HibernateJPA 標準Hibernate JPASpringDataSpringData JPASpringData RedisSpring全家桶之SpringData——Spring 整合Hibernate與Hibernate JpaHibernate是一種ORM框架,ORM全稱為 Object_Relative DateBase-Mapping,在Java對象與關系數據庫之間建立某種映射,以實現直接存取Java對象!在這里, 我們搭建了一個Hibernate簡單環境 ,用來測試相關的語法 ,通過hibernate完成crud操作.并通過Hibernate實現 HQL查詢(Hibernate Query Language) , SQL查詢 ,QBC查詢(QBC:Query By Criteria )。然后 , 又開始Spring整合Hibernate JPA的學習, 通過Hibernate JPA完成crud操作.并通過Hibernate Jpa實現 HQL查詢(Hibernate Query Language) , SQL查詢 ,QBC查詢(QBC:Query By Criteria )。Spring全家桶之SpringData——Spring Data JPASpring Data JPA,即SpringData的Java持久層API , 是spring data 項目下的一個模塊。提供了一套基于JPA標準操作數據庫的簡化方案。底層默認的是依賴Hibernate JPA 來實現的。Spring Data JPA 的技術特點:我們只需要定義接口并繼承Spring Data JPA 中所提供的接口就可以了。不需要編寫接口實現類。即可實現對數據庫的操作。在這里, 介紹他的相關注解以及持久層 ,持久化, 持久化的相關操作等關鍵術語 ,然后進行實戰應用 : 搭建Spring Data JPA項目 .分別繼承了以下五個接口以及用戶自定義Repository接口的實現。最后, 使用SpringData JPA實現實體關系映射操作 ,包括:一對一的關聯操作
一對多的關聯操作
多對多的關聯操作
SpringBoot部分
Spring全家桶之SpringBoot——初級階段Spring Boot 設計目的是用來簡化新Spring 應用的初始搭建以及開發過程。他擁有嵌入的Tomcat,無需部署WAR 文件 , Spring Boot 并不是對Spring 功能上的增強,而是提供了一種快速使用Spring 的方式。可以通過SpringBoot官網 快速構建SpringBoot項目, 自動為你生成啟動類以及相關文件等。在SpringBoot的初級階段 ,學習了SpringBoot的啟動器 以及編寫了HelloWorld的入門案例 ;再學習了SpringBoot整合Web的開發, 包括整合Servlet ,Filter ,Listener ,靜態資源以及實現文件上傳功能 ;然后學習了 SpringBoot整合視圖層的技術, 包括整合Jsp技術,Thymeleaf技術,以及freeMarker技術;最后學習了SpringBoot整合Mybatis技術。Spring全家桶之SpringBoot——高級階段Spring Boot是一個簡化Spring開發的框架。用來監護spring應用開發,約定大于配置,去繁就簡,just run 就能創建一個獨立的,產品級的應用。我們在使用Spring Boot時只需要配置相應版本的SpringBoot父項目就可以用所有的Spring組件,簡單的說,SpringBoot就是整合了很多優秀的框架,不用我們自己手動的去寫一堆 xml 配置然后進行配置。從本質上來說,SpringBoot就是Spring,它做了那些沒有它你也會去做的Spring Bean配置。在SpringBoot的高級階段,我們首先學習了SpringBoot的數據校驗,即對前端 form表單的校驗, 包括對用戶名 ,密碼 ,年齡 ,郵箱等進行校驗。再學習了SpringBoot的異常處理與單元測試 , 捕獲指定異常 ,在自定義的頁面現實錯誤信息。然后學習了SpringBoot的熱部署 , 令我們不需要手動重啟項目即可使修改的代碼生效。然后學習了SpringBoot整合SpringData JPA五種接口的使用以及實體關系映射操作。SpringCloud部分
Spring全家桶之SpringCloud——初級階段Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。Spring Cloud并沒有重復制造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝 , 屏蔽掉了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。在SpringBoot的初級階段,我們首先學習了四種架構風格 ,MVC, RPC, SOA, 微服務架構以及微服務的設計原則,特別是AKF拆分原則的學習,再學習了SpringCloud的簡介 ,版本號以及與子項目兼容介紹 ,與Dubbo的性能對比。然后進入了SpringBoot實戰(做小項目), 官網快速構建項目, 修改pom坐標和全局配置文件 ,異常處理以及健康監控。再然后進入了RabbitMQ實戰, 搭建環境并編寫案例源碼, 三種交換器, 實現服務松耦合以及消息的處理。最后學習了Eureka注冊中心, 搭建Eureka服務注冊中心以及注冊中心集群, 并發布到指定虛擬機或服務器中。并且對Eureka進行優化, 優雅停服的實現, 講述Eureka的安全認證。Spring全家桶之SpringCloud——高級階段(上)在SpringCloud高級階段的第一部分, 我們首先學習了負載均衡Ribbon ,服務之間的通訊方式有兩種 :一種是負載均衡 Ribbon ,一種是聲明式調用 FeignRibbon 是一個基于 Http 和 TCP 的客服端負載均衡工具,它是基于 Netflix Ribbon 實現的。它不像 spring cloud 服務注冊中心、配置中心、API 網關那樣獨立部署,但是它幾乎存在于每個 spring cloud 微服務中。包括 feign 提供的聲明式服務調用也是基于該 Ribbon 實現的。ribbon 默認提供很多種負載均衡算法, 例如: 輪詢、隨機 等等。甚至包含自定義的負載均衡算法。然后學習了聲明式調用 Feign ,Spring Cloud 的聲明式調用, 可以做到使用 HTTP 請求遠程服務時能就像調用本地方法一樣的體驗,開發者完全感知不到這是遠程方法,更感知不到這是個 HTTP 請求。它像 Dubbo 一樣,consumer 直接調用接口方法調用 provider,而不需要通過常規的 Http Client 構造請求再解析返回數據。它解決了讓開發者調用遠程接口就跟調用本地方法一樣,無需關注與遠程的交互細節,更無需關注分布式環境開發。最后學習了服務容錯保護Hystrix ,用來微服務項目因為軟件或硬件原因出現的雪崩效應, 它提供了五種解決方式:降級, 隔離, 熔斷, 請求緩存, 請求合并. 我們將整合這五個方案結合案例源碼進行學習。Spring全家桶之SpringCloud——高級階段(中)在SpringCloud高級階段的第二部分, 我們首先學習了微服務的常用的六種設計模式, 并進行案例模擬。再學習了服務網關Zuul ,API網關是一個反向路由:屏蔽內部細節,為調用者提供統一入口,接收所有調用者請求,通過路由機制轉發到服務實例。API網關是一組“過濾器”集合:可以實現一系列與核心業務無關的橫切面功能,如安全認證、限流熔斷、日志監控。我們進行了案例模擬, 然后總結了常用的路由規則 ,自定義網關過濾器(權限驗證與異常處理), 網關容錯, 在高并發情況下, 實現限流打到自我保護, 以及超時問題解決。然后學習了分布式服務配置中心, 配置中心入門案例(配置中心客戶端和服務端的搭建), "GitHub的中文版-碼云"的使用方式, 配置中心配置文件的命名與訪問規則, bootstrap與application的區別。最后學習了對配置文件的安全與加密, 使用對稱加密和非對稱加密算法 ,實現敏感數據加密( 例如數據庫的用戶名和密碼 )以及配置中心的用戶安全認證的實現, 在一定程度上保護了配置文件。Spring全家桶之SpringCloud——高級階段(下)在SpringCloud高級階段的第二部分, 我們首先學習了消息總線Bus,SpringCloud bus集成了市面上常用的消息代理 ,(RabbitMQ ,Kafka) ,連接服務中的所有節點。當有數據有變更時 ,可以通過代理廣播通知微服務及時變更數據 ,例如微服務的配置更新。它的出現解決了微服務數據變更 , 及時同步問題 .進行了案例模擬.實現了采用bus 實現自動刷新配置信息Sever( 服務端)與Client ( 客戶端)的刷新以及局部刷新的實現。然后習了消息驅動Stream, Spring Cloud Stream是一個構建消息驅動微服務應用的框架。它基于Spring Boot構建獨立的、生產級的Spring應用,并使用Spring Integration為消息代理提供鏈接。你可以添加@EnableBinding注解到你的應用中來快速連接到消息代理,添加@StreamListener注解到一個方法上,這個方法會接收到Stream處理事件。進行了案例模擬, 并實現了Stream消息的分組與分區。最后學習了分布式服務跟蹤Sleuth, 由于單體架構變為微服務架構, 并且系統規模越來越大, 各個服務之間的關系變得越來越復雜, 這就是分布式服務跟蹤技術Sleuth出現的背景, 它能夠為我們提供鏈路追蹤,性能分析, 數據分析和優化鏈路, 并為我們提供可視化界面. 通過將項目和ELK進行整合 ,方便我們跟蹤分析日志。SpringCloud技術拓展部分
Spring全家桶之SpringSession在這里, 我們首先學習了HttpSession, 他是 JavaWeb 服務端提供的用來建立與客戶端會話狀態的對象。介紹了SpringSession以及使用, 安裝redis單機版的教程, 共享簡單數據以及自定義對象,設計Session的失效時間以及更換其序列化器。然后學習了Spring Session MongoDB, 他與HttpSession,不同之處是它是用MongoDB作為Session的緩存場所, 而后者使用的Redis作為緩存數據存放的場所. 但他們都是用來解決Session 共享問題, 講解了MongoDB單機版的安裝, 共享簡單數據以及自定義對象,設計Session的失效時間以及更換其序列化器。Spring全家桶之SpringSecuritySpringSecurity 是一個高度自定義的安全框架。利用 SpringIoC/DI和 AOP 功能,為系統提供了聲明式安全訪問控制功能,減少了為系統安全而編寫大量重復代碼的工作。正如你可能知道的兩個應用程序的兩個主要區域是“認證”和“授權”(或者訪問控制)。這兩點也是 SpringSecurity 重要核心功能。“認證”,是建立一個他聲明的主體的過程(一個“主體”一般是指用戶,設備或一些可以在你的應用程序中執行動作的其他系統),通俗點說就是系統認為用戶是否能登錄。“授權”指確定一個主體是否允許在你的應用程序執行一個動作的過程。通俗點講就是系統判斷用戶是否有權限去做某些事情。在這里,我們首先進行了案例模擬, 講解了UserDetailsService 的作用,自定義登陸邏輯與登陸頁面。然后學習了認證過程中的其他常用配置,訪問控制url的配置, 內置方法的介紹以及角色權限的判斷。再然后學習自定義403(權限不足)頁面的處理, 常見狀態碼介紹, 基于表達式和注解的訪問控制。最后學習了RememberMe(免登陸)功能的實現, 然后在學習Spring Security 中的CSRF后華麗落幕。Spring全家桶之分布式事務處理技術之LCN分布式事務是指事務的參與者、支持事務的服務器、資源服務器以及事務管理器分別位于不同的分布式系統的不同節點之上。在設計LCN框架之初的1.0 ~ 2.0 的版本時,框架設計的步驟是如下的,各取其首字母得來的LCN 命名。LCN: 鎖定事務單元(lock)、確認事務模塊狀態(confirm)、通知事務(notify) , 他的宗旨 : LCN 并不生產事務,LCN 只是本地事務的協調工。在這里我們通過案例模擬的形式, 學習了使用LCN 實現分布式事務處理服務端和服務端的配置并實現相關功能。以及有待解決的功能——在服務網關中配置LCN。這里需要注意的是本博文介紹的分布式事務處理是基于SpringCloud 的環境下實現的。結語
希望能夠幫到大家, 同時也希望通過總結提升, 能夠幫助自己建立起一套屬于自己的Spring知識體系。總結
以上是生活随笔為你收集整理的spring api 中文_Spring高级技术梳理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net一个函数要用另一个函数的值_【1
- 下一篇: menu什么意思中文意思_proclai