- Spring Boot實戰(zhàn):從0開始動手搭建企業(yè)級項目
- 十三
- 1407字
- 2021-08-13 19:43:29
1.1 學習Spring Boot遇到的問題
近幾年筆者一直在做關于Spring Boot的技術實踐和分享,也不斷有朋友與筆者進行技術交流。在交流過程中,很多朋友描述了他們遇到的Spring Boot學習困境,如圖1-1所示。

圖1-1 Spring Boot學習困境
筆者將結(jié)合自身的學習和實踐經(jīng)驗,對這些問題進行總結(jié)和回答。
1. 如何快速入門Spring Boot呢
在學習一門新技術時,很多開發(fā)人員會在網(wǎng)上找demo或者在開源網(wǎng)站上找對應的開源項目,通過閱讀源碼,學習項目作者的開發(fā)思路和解決問題的方法。這一過程對大多數(shù)人來說并不容易,要么不知道從何下手,要么由于技術文檔的不完善導致被某個環(huán)節(jié)卡住。這些不利的因素最終可能導致開發(fā)人員無法堅持學習。
學習新技術的第一階段,首先應該了解這門技術的產(chǎn)生背景、理念、發(fā)展歷程,同時要分析它主要解決什么痛點。然后可以參照官網(wǎng)的案例進行嘗試性的編碼。
2. Spring Boot入門了,然后呢
對于開發(fā)人員來說,學習任何技術的最終目的都是為了進行實際企業(yè)項目的開發(fā)。了解一門技術,甚至通過編碼實現(xiàn)了一些小功能,但是沒有嘗試與正在開發(fā)或者已經(jīng)上線的項目進行結(jié)合與類比,這是不行的。如果開發(fā)人員處在這個狀態(tài)下,就應該思考一下用Spring Boot重構(gòu)正在開發(fā)或者已經(jīng)上線的項目。筆者認為,原項目中的模塊和功能,都可以嘗試使用Spring Boot實現(xiàn),并逐一比較該開發(fā)模式與平時直接使用Spring進行開發(fā)有何不同。通過一兩個項目的實踐,就能更加了解Spring Boot技術棧,而且可以整合前期零散的知識點,獲得較大提升。
3. Spring Boot進階之路,路在何方
隨著開發(fā)人員對Spring Boot技術學習和使用的深入,其需求會由使用轉(zhuǎn)向深入理解和掌握。此時的開發(fā)人員往往處于一個比較迷茫的狀態(tài),即知其然不知其所以然,主要表現(xiàn)在以下幾個方面。
(1)能夠使用Spring Boot進行功能開發(fā),但是并不知道所寫的代碼具體是如何生效的。比如最常見的數(shù)據(jù)源配置,即在配置文件中設置JDBC的相關參數(shù)就可以直接連接數(shù)據(jù)庫并進行相關操作。此時的痛點就是雖然能夠?qū)懗鲆粋€功能的實現(xiàn)代碼,但不知道為什么要這么寫。
(2)在面試或者技術交流時,談到Spring Boot的底層實現(xiàn)和設計思想,該階段的開發(fā)人員往往一臉茫然,無法給出自己的回答。他們對Spring Boot的了解并不全面,而且Spring Boot技術棧涉及的模塊很多,知識點的串聯(lián)難度也就比較高。
比如“約定優(yōu)于配置”。什么是約定優(yōu)于配置?它具有什么特點,又能給實際開發(fā)工作的效率帶來哪些提升?比如自動配置,什么是自動配置?它又是如何實現(xiàn)的?自動配置的機制能夠給開發(fā)工作帶來哪些改變?再比如Spring Boot中的各種starter是什么?該如何深入了解它?此時的痛點就是對于耳熟能詳?shù)奶匦曰蛘吒拍畈焕斫馄鋬?nèi)在含義。
(3)對于閱讀和學習源碼,該階段的開發(fā)人員往往不知道從哪里看起,也沒有堅實的理論基礎,看不懂源碼的含義,最后就放棄學習。此時的痛點就是對于源碼閱讀有心無力,沒有良好的方法論和指導。
如果正在閱讀本書的讀者也遇到了相似問題,一方面說明你已經(jīng)掌握了Spring Boot的基本使用方法,另一方面也說明你需要升級相關知識的認知了。
4. Spring Boot完整項目開發(fā),如何實踐
該階段的開發(fā)人員有了自己的項目構(gòu)想,但是不知道如何開發(fā)一個完整的項目。他們經(jīng)常開發(fā)到某一個階段就會被一些小問題卡住,導致無法繼續(xù)開發(fā)。由于缺少完整的項目源碼和系統(tǒng)的知識講解,他們在開發(fā)過程中時常會碰到各種小問題,最終導致開發(fā)進度停滯不前甚至被迫終止開發(fā)。其實筆者在項目開發(fā)的過程中也會遇到各種各樣的問題,甚至也遇到過不能繼續(xù)開發(fā)的死局。任何人都會遇到問題,我們應該嘗試著解決它,而不是退縮和逃避,通過摸索、學習最終都會解決問題。
- 圖解Java數(shù)據(jù)結(jié)構(gòu)與算法(微課視頻版)
- Django開發(fā)從入門到實踐
- 樂學Web編程:網(wǎng)站制作不神秘
- 重學Java設計模式
- Mastering Apache Spark 2.x(Second Edition)
- Python完全自學教程
- Mastering Apache Maven 3
- 程序設計基礎教程:C語言
- Advanced Express Web Application Development
- Java Web從入門到精通(第2版)
- 零基礎輕松學C++:青少年趣味編程(全彩版)
- JavaScript編程精解(原書第2版)
- Functional Python Programming
- Learning NHibernate 4
- LibGDX Game Development By Example