騰訊T7架構師至今還在鑽研的SpringBoot從構建小系統到架構大系統

2020-12-17 Java鬥帝之路

前言

個人認為,springboot是隨著Spring4.0出生的, 他的出現,目的是為了解決Spring這麼多年來的發展導致本身的笨重、各類繁瑣及與第三方框架整合的配置文件,對於碼農或項目團隊來說,是不希望見到的。因此springboot的出現是為了解決spring多年發展帶來的弊端。

springboot的優點:

配置簡單了springboot內嵌了servlet容器,降低了對環境的要求,機器有java運行環境,可以將項目打包成jar包,通過java命令 java -jar ****.jar 來執行。快速整合第三方框架,無需配置文件解決了Spring的弊端最最最最最最大的優點是,代碼少了、配置文件少了、不需要對第三方框架煩惱了、項目精簡了,對整個團隊的開發及維護來說,更大的節約了成本。Spring 框架概述

如果你是 Java 開發人員,那麼你多半聽說過 Spring 框架,甚至可能在項目中使用過這一框架。Spring 框架主要起源於一個依賴注入容器,但它遠不止於此。

Spring 之所以流行,是因為:

Spring 的依賴注入方法支持編寫可測試的代碼強大且易用的資料庫事務管理能力Spring 非常容易與其它 Java 框架集成,如 JPA/Hibernate ORM、Struts、JSF等。使用前沿的 MVC 框架構建 Web 應用Spring 除了框架之外,還有很多姊妹項目可以助力構建滿足現代業務需求的應用程式:

Spring Data:為訪問關係型資料庫或 NoSQL 資料庫提供便利。Spring Batch:強大的批處理框架。Spring Security:為安全應用而生的強健的安全框架。Spring Social:支持整合社區網絡,比如 Facebook、Twitter、LinkedIn、Github 等。Spring Integration:企業級集成模型的實現,使用輕量級的消息傳遞和聲明式適配器與其他企業應用集成。在本文中,我們將介紹:

系統介紹Spring Boot2的兩個主要技術:

一方面是極速開發一個Web應用系統,詳細介紹Spring Boot框架、Spring MVC、視圖技術、資料庫訪問技術,並且介紹多環境部署、自動裝配、單元測試等高級特性;另一方面, 當系統模塊增加,性能和吞吐量要求增加時,如何平滑地用Spring Boot實現分布式架構,包括使用Spring實現RESTful架構,在Spring Boot框架下使用Redis、MongoDB、 ZooKeeper、 Elasticsearch 等流行技術,使用Spring Session 實現系統水平擴展,使用Spring Cache提高系統性能。內容

第1章Java EE簡介

要應用SpringBoot技術,並不一定需要先從Spring技術開始,更不需要了解JavaEE。然而,稍微了解Java EE和Spring技術,對Spring Boot會有更深的理解。

第2章Spring Boot基礎

本章首先介紹如何安裝Spring Boot應用的開發環境,也會詳細介紹Maven工具的安裝、配置和使用。最後會再次介紹Spring的歷史、IoC 容器和Spring常用的註解。

需要免費領取這份騰訊T7架構師至今還在鑽研的《Spring Boot 2從構建小系統到架構分布式大系統》的朋友,麻煩轉發小編這篇文章,並關注我後私信【666】三字即可。

第3章MVC框架

在Spring框架和Spring Boot中,最常用的技術就是MVC框架。試圖講清楚Spring MVC的內容,有可能需要一本書來講述。本章將介紹MVC中最實用的部分,一些不常用的技術,或者過時的技術將不做介紹。

第4章視圖技術

本章介紹MVC中的後端視圖技術,一種是後端模板引擎Beetl,用於渲染模板;另外一種是JSON序列化技術Jackson。

本章選擇介紹Beet,Beetl 普遍應用在國內頂尖網際網路公司、大中型企業,具有易使用和性能良好等特點,有非常好的國內口碑。

對於JSON的序列化和反序列化技術,也有很多工具可以採用,如國內的Fastison,國外的Jackson、Gson。 Jackson 是Spring Boot內置的,也是Spring Boot相關很多開源產品內置的序列化工具,與Beetl一樣,同樣易使用、性能良好,堪稱JSON首選工具。

第5章資料庫訪問

本章介紹Spring JDBC Template和BeetISQL兩種資料庫訪問方式,JDBC Template是Spring自帶的,在JDBC的基礎上做了一定封裝,而BeetISQL是筆者研發的,除了封裝了JDBC操作,還帶有SQL管理、跨資料庫平臺支持等企業功能。它們的共同點都是以SQL為核心。

第6章Spring Data JPA

本章將介紹Spring Data JPA,它在JPA提供的簡單語義上做了一定的封裝,滿足CRUD查詢。同時,也會介紹SpringData,它為Spring框架對訪問SQL和NoSQL資料庫提供了一致的方式。

第7章Spring Boot 配置

在SpringBoot出現之前,Spring項目會存在多個配置文件,比如web.xml,配置Spring的多個application-xxx.xml,xxx代表配置Spring 的某一個 功能,如application-datasource.xml、application-mvc.xml。應用自身也需要多個配置文件,還需要編寫代碼去讀取這些配置文件的參數。現在Spring Boot簡化了Spring 配置的管理和讀取,只需要一個 application.properties,並提供了多種讀取配置文件的方式。

第8章部署Spring Boot應用

這一章講述如何部署Spring Boot應用,Spring Boot可以以jar方式運行,也可以部署到支持Servlet3.0 或者支持較早的Servlet2.5的Web伺服器上。

第9章Testing單元測試

單元測試概念 以及 Spring Boot 下的單元測試支持,包括 MVC 單元測試、Mock 測試,以及面向資料庫應用的測試方案

第10章REST

本章介紹Restful 風格接口,並通過Spring Boot 來實現RESTful,最後會介紹Swagger工具,來增強RESTful的維護開發。

第11章MongoDB

MongoDB 的安裝和使用 然後介紹Spring Boot 如何集成 MongoDB, 同時還介紹了如何用 Mongo Template 訪問MongoDB

第12章Redis

介紹 Redis 伺服器的安裝和使用, Redis 常用的數據結構和操作命令。然後介紹 SpringBoot 如何集成 Redis ,如何使用 RedisTemplate 來操作 Redis 。本章後半部分深入介紹了 RedisTemplate提供的序列化機制。

第13章Elasticsearch

Elasticsearch 的安裝和使用, Elasticsearch 既具有全文搜索功能,也能像MongoDB 那樣,具備NoSQL 的功能。本章介紹通過REST Spring Data 兩種方式訪問 Elasticsearch

第14章Cache

Spring Boot Cache ,並重點介紹 Redis作為分布式緩存的實現。在此基礎上,改進了 Redis分布式緩存,通過較少的代碼實現了一個具備一二 級緩存的技術方案

第15章Spring Sessi on

SpringBoot應用通常會部署在多個Web伺服器上同時提供服務,這樣做有很多好處:

單個應用宕機不會停止服務,升級應用可以逐個升級而不必停止服務。提高了應用整體的吞吐量。我們稱這種部署方式為水平擴展,前端通過Nginx提供反向代理,會話管理可以通過SpringSession,使用Redis來存放Session。 部署Spring Boot應用到任意一-臺 Web伺服器上,從而提高了系統可靠性和可伸縮性。

第16章Spring Boot和ZooKeeper

本章介紹 ZooKeeper 的安裝和使用,對領導選取、分布式鎖和服務註冊三個常用功能做了重點描述,並在 Spring Boot 應用中採用 Curator 來完成這 三個功能。

第17章監控Spring Boot應用

Spring Boot 提供了內置監控功能,使得用戶通過 HTTP 請求就能知曉伺服器的健康狀態,如數據源是否可用、 NoSQL 服務是否可用、最近的 HTTP 訪問的內容等監控信息。本章講述了線程、內存、在線日誌、 HTTP 訪問、 RequestMapping 等常用監控功能。其中還講述通過 dump 線程技和內存來解決 Spring Boot 應用中的一些性能故障。

總結

需要領取這份騰訊T7大神一直在研究的這份——《Spring Boot 2精髓》的朋友,麻煩轉發小編這篇文章,並關注我後私信【666】三字即可。

Spring風靡多年,Spring Boot 在最近幾年微服務框架浪潮下更是出盡風頭,本書作者由淺入深地把Spring Boot 2.0各種特性闡述得淋漓盡致,不管你是Spring Boot新手還是老司機都值得一讀。Java Web後端也好,App 後臺也罷,甚至獨立後臺應用,等等,Spring Boot都是你不可或缺的高效率工具。

或許正在觀看此文的某些人已經使用過Spring Boot並節省了50%以上的代碼。

相關焦點

  • 回顧經典,Netflix的推薦系統架構
    這篇文章我們回顧一篇經典博客,Netflix官方博客介紹的推薦系統架構,雖然文章發布已有六年, 但是現在回看起來我自己還是蠻驚訝的,因為Netflix的推薦系統架構居然到現在依然是主流。當然,框架中的諸多技術在不斷的迭代更新,因為近期與Netflix的很多同行有過交流,也可以更新一下框架中一些模塊的最新進展。
  • 架構師不是你想的那樣!
    我當時進英極完全是憑著一股倔強, 因為當時有個很多國人瞧不上的「小日本兒」,o, 不,是「老」日本兒, 一天只睡幾個小時, 但給出的式樣書詳細到偽代碼級別,而且基本沒有錯誤, 當時的 CTO 老王跟著這個日本人對應「廝守」了好幾年了,基本也是這種工作強度,我年紀輕輕的不能輸啊...
  • SpringCloud:系統架構之垂直應用架構
    1.1、說明當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將傳統的單體架構應用拆分成互不相干的幾個小應用,這些小應用獨立的部署到不同的伺服器上,以提升效率。1.2、圖示1垂直應用架構是這樣設計的:將圖中的整個兒大應用:用戶功能、訂單功能以及商品功能拆分成一個一個的小應用,而且每個的小應用都是很完整的,比如說:用戶小應用從頁面Controller,到用戶Service、再到用戶Mapper,再到資料庫都是完整的一套小系統,同時訂單功能、商品功能也是一樣。
  • 【招聘】中原銀行信息技術部招系統架構師
    2017年7月19日,中原銀行在香港聯交所主板掛牌上市,刷新了國內金融機構從成立到H股上市的最快紀錄。  截至2019年6月末,中原銀行全行資產總額6520.25億元,較成立之初翻了三番。下轄18家分行和2家直屬支行,共有營業網點472家;作為主發起人,在省內設有9家村鎮銀行和1家消費金融公司。
  • 軟體定義PLC改變工業網際網路系統架構
    製造業的生產模式隨之發生巨大變化,工業網際網路和智能製造成為解決從大規模「剛性製造」轉向小批量「柔性製造」的必然選擇。   工業網際網路使得生產數據可以進行規模化集中存儲,實現以前不可能實現的大數據,並利用雲平臺前所未有的計算能力對大數據進行分析,挖掘和優化生產效率。智能製造使得現場設備、機器和工廠變得「更智能」,能夠通過工業網絡採集到各類現場數據。
  • 6年拉力經驗,學了P8架構師的7+1+1落地項目,跳槽阿里年薪40W+
    >再造淘寶之咚寶-構建step11 -支付中心再造淘寶之咚寶-構建step12 -物流中心再造淘寶之咚寶-構建step13 -租戶中心再造淘寶之咚寶-構建step14-.上雲開源阿里P8級架構師第一篇:千億流量高並發高可用分布式系統之理論基礎篇
  • 15 年架構設計經驗:我眼中的那些優秀架構師
    後來,在和他進一步溝通的過程中,我發出了這樣的感慨:一個工程師,如果不能從架構師的角度思考問題,帶領團隊,整體完成一個系統的架構設計與開發,就永遠也不會了解如何做一個架構師。而如果他不去做一個架構師,又永遠沒有機會帶領一個團隊,完成一個系統的架構設計與開發。 這裡似乎形成一個死循環。能否解開呢?
  • 平安科技CTO方國偉:架構師如何提升技術敏感度?
    另外不但做金融,還在醫療和智慧城市兩個方向發力,所以 2018 年雲平臺的重點就是為金融、醫療、智慧城市這三大行業做支撐,這是第二個比較大的發展方向的變化。由於這三個行業都屬於強監管行業,因此我們面臨了很大的挑戰。我們在雲平臺構建裡面做了很多隔離技術,使得整個雲平臺可以支撐不同的行業。
  • 架構師最常使用的5種架構模式及其適用場景分析
    您可以採用幾種架構來實現應用程式?目前大多數程序都使用下面提到的五種架構之一。 在本文中,我將五種軟體架構模式的優缺點以及適合場景提煉出來作為快速參考。你可以在單個系統中使用多個架構模式,它們的組合既是計算機科學,也是一門藝術。
  • IBM高級架構師結合Java多線程和Socket,帶你實戰微服務架構
    不過,受到當時計算機水平的限制,面向服務的架構思想在誕生之初,並沒有得到廣泛的關注和發展。隨著軟體系統的規模越來越大、越來越複雜,軟體系統的架構也在不斷地演進,面向服務的架構開始受到人們的關注和認可。目前,大型軟體系統的服務端架構多數都是面向服務的架構,或者正在朝這一架構遷移。
  • 阿里P8架構師整理總結:Spring+SpringBoot+SpringCloud技術文檔
    同時,讀者還會了解到更大的Spring生態系統的整體情況。第2章更為詳細地介紹DI,展現應用程式中的各個組件(bean)如何裝配在一起。這包括基於XML裝配、基於Java裝配以及自動裝配。在本章中,讀者將會學習到如何構建引導用戶完成特定流程的Web應用程式。第9章讀者將會學到如何使用Spring Security為自己的應用程式Web層實現安全性。第3部分所關注的內容不再是應用程式的前端了,而是關注於如何處理和持久化數據。
  • 軟體項目實訓及課程設計指導——系統設計中的系統架構設計示例
    軟體項目實訓及課程設計指導——軟體系統設計中的系統架構設計示例1、軟體系統概要設計中所涉及的主要設計內容和工作過程(1)在軟體應用系統項目的系統概要設計工作中,首先是要完成軟體系統的總體架構設計及系統的分層設計,然後再利用UML包視圖體現出軟體系統架構設計的最終結果
  • 軟體項目實訓及課程設計指導——如何實現面向服務的系統架構設計
    )其實就是一種新型的軟體應用系統的系統體系架構設計形式,在基於SOA架構設計思想所開發實現的企業級軟體應用系統中,軟體應用系統中的各個業務功能的程序模塊是由一些鬆散耦合併且具有統一接口定義的服務組件相互組合而構建的。
  • 硬核乾貨:一位菜鳥碼農的架構師「封神」之路!
    在進行深層次的探討之前,我們先來看兩個定義:軟體架構師是指那些制定高級設計決策,並確定技術標準(包括軟體編程標準、工具和平臺)的軟體專家。這之中的首席專家就是總架構師。軟體架構是系統的基本組織構成,這種組織主要體現在其組件、組件之間的關係、組件與環境之間的關係,以及決定系統設計與演化的原則。
  • 騰訊工業雲首席架構師餘弦:做好數位化助手,布局數字經濟新基建
    數位化轉型逐漸成為各界共識,但對數位化轉型成本、技術門檻缺少認識的中小企業,還在信息化浪潮的外圍踟躕。推動科技普惠的一個積極的信號是,中國的科技巨頭正在扮演「領路人」角色。比如,騰訊為幫助中小企業數位化,採取了一系列推動計劃。
  • 【CTO講堂】如何通過APM持續構建高性能IT架構?
    本期邀請雲智慧首席架構師高馳濤(Neeke Gao)帶來「如何通過APM持續構建高性能IT架構? 」的主題分享。歡迎加入CTO講堂微信群與業界大咖零距離溝通,12月17日本期講堂報名方式拖至文末查看。終端用戶,指的是用戶本身,用戶說你快說你好,你才是真正的快和好,伺服器自己的表現其實也是片面的,只有到了用戶那裡,才是真正的服務。應用架構映射,曾經遇到過一個上市企業的cto,他坦言,就他們目前10多名架構師的規模,全部上陣,也需要半年時間才能把整個架構畫清楚。APM要求馬上呈現它。
  • Dubbo系統架構解析
    Dubbo 的兩大設計原則Dubbo 框架在設計時遵循了兩大設計原則:使用「微內核+插件」的設計模式。內核只負責組裝插件(擴展點),Dubbo 的功能都是由插件實現的。Dubbo 作為一個優秀的 RPC 框架,一個 Apache 的頂級項目,其最大的亮點之一就是其優秀的無限開放性設計架構—「微內核+插件」的架構設計思想,使得其幾乎所有組件均可方便的進行擴展、增強、替換。採用 URL 作為配置信息的統一格式,所有擴展點都通過傳遞 URL 攜帶配置信息。
  • 【招聘】光大銀行信用卡中心招雲平臺、安全、資料庫、架構等多個...
    中國光大銀行信用卡中心著力打造「懂你」的信用卡,提出「你懂世界,而我懂你」的全新品牌理念,堅持以創新促發展,推出覆蓋廣泛客戶群體和消費場景的信用卡產品,尤其突出圍繞「大旅遊」、「大健康」方向擴展產品線;以服務做強品牌,打造切合客戶特徵、市場熱點的主題營銷活動,提升品牌影響力和客戶體驗度;以科技賦能風控,引入大數據和人工智慧技術強化風險監測、預警及應對能力。
  • 解析智慧醫院 HIS 系統存儲架構升級與改造 17 個難點
    【 A2 】 nightdxl 華為數據存儲解決方案中心 架構師:醫院 HIS 系統的本地傳統構架,應用相對獨立,備份和容災主要依賴於本次採購的硬體自身的數據安全性設計,譬如雙活、 3DC 等方案,以及 RAID2.0+ 等特性,而雲方面則基本上取決於所採用雲所提供的相應雲服務;雲上的擴展性更好,數據共享和大數據分析等方面有先天性優勢,但私密性略遜於本地傳統架構。
  • 基於SpringBoot Cloud構建的一個商城項目源碼分享
    基於springboot cloud構建的一個商城項目,包括前端,後端和h5應用,小程序,作為zscat應用實踐的模板項目。基於SpringBoot2.x、SpringCloud和SpringCloudAlibaba並採用前後端分離的企業級微服務敏捷開發系統架構。