前言
個人認為,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%以上的代碼。