mysql 實現(xiàn)分層查詢,如何系統(tǒng)的學習Spring?
Spring Boot 是由 Pivotal 團隊提供的全新框架,其設(shè)計目的是用來簡化新 Spring 應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。我這里會分享一些學習Spring Boot的方法和干貨,包括基礎(chǔ)到進階,按照本文的學習路線將會事半功倍,避免大家走了彎路導(dǎo)致浪費了大量時間,詳見下文。
一. Spring Boot 是什么
我們剛開始學習 JavaWeb 的時候,使用 Servlet/JSP 做開發(fā),一個接口搞一個 Servlet ,很頭大,后來我們通過隱藏域或者反射等方式,可以減少 Servlet 的創(chuàng)建,但是依然不方便。再后來,我們引入 Struts2/SpringMVC 這一類的框架,來簡化我們的開發(fā) ,和 Servlet/JSP 相比,引入框架之后,生產(chǎn)力確實提高了不少,但是用久了,又發(fā)現(xiàn)了新的問題,即配置繁瑣易出錯,要做一個新項目,先搭建環(huán)境,環(huán)境搭建來搭建去,就是那幾行配置,不同的項目,可能就是包不同,其他大部分的配置都是一樣的。Java 總是被人詬病配置繁瑣代碼量巨大,這就是其中一個表現(xiàn)。那么怎么辦?Spring Boot 應(yīng)運而生,Spring Boot 是 Pivotal 團隊在 2013 年開始研發(fā)的一個基于 Spring 的全新框架,試圖將 Spring 中臃腫的配置進行簡化,使 Java 開發(fā)更加輕量與快速,這個框架非常活躍,官方也非常重視。Spring Boot 主要提供了如下功能:為所有基于 Spring 的 Java 開發(fā)提供方便快捷的入門體驗。開箱即用,有自己自定義的配置就是用自己的,沒有就使用官方提供的默認的。提供了一系列通用的非功能性的功能,例如嵌入式服務(wù)器、安全管理、健康檢測等。絕對沒有代碼生成,也不需要XML配置。Spring Boot 的出現(xiàn)讓 Java 開發(fā)又回歸簡單,因為確確實實解決了開發(fā)中的痛點,因此這個技術(shù)得到了非常廣泛的使用,大概從 2017 年年初開始,Spring Boot 基本上面試必問,現(xiàn)在流行的 Spring Cloud 微服務(wù)也是基于 Spring Boot,因此,所有的 Java 工程師都有必要掌握好 Spring Boot。從 Spring Boot 誕生的過程中,我們可以看到:Spring Boot 并非另起爐灶,而是在現(xiàn)有的 Spring 框架的基礎(chǔ)上整出來的,它把 Spring 中繁瑣的配置進行了簡化。Spring Boot 降低了 Spring 家族的使用門檻,使新手更易上手 Spring 框架。既然 Spring Boot 不是另起爐灶,那么 Spring Boot 學習要不要跳過 SSM 呢?聽松哥來分析。二. 要不要跳過 SSM
這是很多人問我的一個問題,我的建議是:不要。Spring Boot 基于 Spring,簡單且容易上手,很多人想當然的跳過 SSM 直接上 Spring Boot。但是當我們細究 Spring Boot 中的自動化配置、條件注解、Java 配置等東西時,實在找不出太多新鮮玩意,Java 配置是 Spring3 開始提供的,條件注解 也是 Spring 中的東西,很多很多,都是 Spring 中就有的,只不過這些東西在 Spring Boot 時代大放異彩。也就是說,即使你跳過了 SSM 直接去學習 Spring Boot,實際上還是在學習 Spring 中的東西,那既然這樣,我們還不如坐下來,老老實實把 Spring 過一遍。各個領(lǐng)域的開發(fā)工程師其實都會面臨類似的問題,學習了一些優(yōu)秀的封裝框架之后,還有沒有必要去學習底層?當然有必要!因為底層的東西可以讓你深刻的理解你目前用的這個東西,也能讓你在出問題時快速解決掉問題。其實無論你想搞什么技術(shù),都要有牢固的基礎(chǔ)知識,這些牢固的基礎(chǔ)知識就像肥沃的土壤,可以孕育出各種不同技術(shù)方向的牛人,基礎(chǔ)掌握好了,學什么框架都快。今天你跳過 SSM 直接學了 Spring Boot,假如有一天 Spring Boot 不行了,Pivotal 團隊又基于 Spring 框架搞了一個新的框架出來,那你是不是又要去學一遍?但是如果你一開始就掌握了 Spring 的各種用法,無論基于它搞出來什么樣的框架,你都能快速上手。更進一步,如果你研究透了 Spring 中的 AOP、Ioc/DI,你會發(fā)現(xiàn)很多框架大同小異,核心思想就是這些東西,那么你在學習 Spring 之外的框架,就會容易很多。三. 都要學哪些?
那么 Spring Boot 學習都要學哪些東西呢?我這里列舉了一個進階路線:最基礎(chǔ)的當然是 Spring/SpringMVC 相關(guān)的東西了。搭配各種頁面模板的使用,例如 Jsp/Thymeleaf/Freemarker/Groovy Templates 等。和各種 SQL 數(shù)據(jù)庫的整合,以及一些常見的數(shù)據(jù)持久化框架,例如 JdbcTemplate、MyBatis、Jpa 等。和各種 NoSQL 數(shù)據(jù)庫的整合,例如 Redis、MongoDB、Elasticsearch 等。搭配安全管理相關(guān)的知識點,例如 Spring Security、Shiro 等。緩存的使用,例如 JCache、Ehcache 等。和消息中間件的搭配整合,如 ActiveMQ、RabbitMQ、Kafka 等。數(shù)據(jù)校驗/定時任務(wù)/郵件發(fā)送等。各種監(jiān)控的使用。結(jié)合 WebSocket 的使用。Spring Cloud 中相關(guān)組件。...上面這些只是我列出來的一些比較常見的技術(shù)點,每個技術(shù)點都還可以延伸出很多其他的東西,大家可以結(jié)合自己的情況,按照順序一個一個來學,這里邊還涉及到很多第三方的框架,例如 Redis、MongoDB、RabbitMQ 等,Spring Boot 的出現(xiàn)只是讓這些組件在和 Spring 家族的產(chǎn)品整合時變得更加方便,但是并不會簡化這些組件原本的用法,所以,該學 Redis、該學 MongoDB、該學 RabbitMQ 等等,還是一個不能少。以 Redis 為例,學會了 Redis,學會了 Spring 整合 Redis,再回過頭來看 Spring Boot 整合 Redis,那簡直太 easy 了。當然,學習 Spring Boot 最終我們還是奔著快速開發(fā)和微服務(wù)去的,所以,像 Docker、Spring Cloud 等技術(shù),也是需要去了解一下的。四. 學習方法
1課程式學習:
主要多見于大學生、畢業(yè)找工作去培訓學校或者自己在網(wǎng)絡(luò)課程中學習的。課程式學習很有必要,能夠獲得穩(wěn)定的知識結(jié)構(gòu),打下良好的基礎(chǔ)。2.碎片化時間學習
碎片化學習主要是利用課余時間,多見于上班族,課余利用上下班、晚上時間、周末時間來實現(xiàn)學習。3.強化學習
這是個非常行之有效的方法,又可以叫魔鬼式訓練、封閉式訓練,在集中的時間內(nèi),人很容易突破自我極限,達到一種前所未有的高度。4.項目式學習
就是項目上的需求,要求你用到 Spring Boot 來實現(xiàn)某個業(yè)務(wù)功能,而且有時間限制,要求你在某年某月某日完成,沒辦法,只能硬著頭皮干下去。這種有收益、有目標、還動力的機會確實是人生中難得的,如果你喜歡這個目標,你可以立馬撲上去。5.隨用隨學
比如項目中用到mql,那么搜索下羅相關(guān)的知識,搭建demo測試用例,然后在項目中實踐。哪種方式更為適合,需要根據(jù)各個人的情況來看項目評估如下:有人帶著你學習看著你學習>自己學習項目學習>非項目學習強化學習>非強化學習五. 學習資源
【入門-基礎(chǔ)】
Spring Boot 快速入門Spring Boot 基礎(chǔ)f="">微服務(wù)構(gòu)建: Spring Boot【入門-緩存】
>SpringBoot 中應(yīng)該怎樣使用 Redisef="">Redis 事務(wù)在 SpringBoot 中的應(yīng)用href="">優(yōu)化 Redis 的使用策略【入門-實踐】
3分鐘快速搭建Spring Boot開發(fā)環(huán)境Spring Boot 最佳實踐(一)快速入門Spring Boot 最佳實踐(二)集成Jsp與生產(chǎn)環(huán)境部署Spring Boot 最佳實踐(三)模板引擎FreeMarker集成Spring Boot 最佳實踐(四)模板引擎Thymeleaf集成Spring Boot 最佳實踐(五)Spring Data JPA 操作 MySQL 8【進階-Web進階】
Spring Boot統(tǒng)一異常處理Spring Boot Web 應(yīng)用性能優(yōu)化基于Spring Boot快速開發(fā)RESTful風格API接口【進階-實例】
基于Spring Boot實現(xiàn)圖片上傳/加水印一把梭操作Spring Boot日志框架實踐Spring Boot 集成 MyBatis和 SQL Server實踐Spring Boot中使用定時任務(wù)Spring Boot 一分鐘擁有支付寶支付功能六. 學完Spring Boot基礎(chǔ)之后如何進階提升?
1.springsession實戰(zhàn)
Spring Session 是Spring家族中的一個子項目,它提供一組API和實現(xiàn),用于管理用戶的session信息,它把servlet容器實現(xiàn)的httpSession替換為spring-session,專注于解決 session管理問題,Session信息存儲在Redis中,可簡單快速且無縫的集成到我們的應(yīng)用中。2.RabbitMQ
RabbitMQ是流行的開源消息隊列系統(tǒng),用erlang語言開發(fā),RabbitMQ是AMQP(高級消息隊列協(xié)議)的標準實現(xiàn)。采用該技術(shù),我們可以實現(xiàn)異步處理、流量削峰、系統(tǒng)解耦。3.Nginx實戰(zhàn)應(yīng)用
國內(nèi)有大量網(wǎng)站使用Nginx,比如:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。由于在日常工作中,我們不可避免地要接觸和使用這樣一款高性能的web服務(wù)器,所以我們非常有必要學習和掌握Nginx。4.FastDFS詳解
FastDFS為互聯(lián)網(wǎng)量身定制,簡單、靈活、高效,采用C語言開發(fā),充分考慮了冗余備份、負載均衡、線性擴容等機制,并注重高可用、高性能等指標,使用FastDFS很容易搭建一套高性能的文件服務(wù)器集群提供文件上傳、下載等服務(wù)。。我覺的學好Spring Boot主要還是得有一個持續(xù)性學習的態(tài)度,然后結(jié)合我上面的從Spring Boot基礎(chǔ)到進階,一直堅持不懈的學習下去,百分百會精通Spring Boot的!本文分享自華為云社區(qū)《【云駐共創(chuàng)】Spring Boot要如何學習?》,作者:黎燃。