Springboot之初入江湖
- 2019 年 10 月 13 日
- 筆記
Hello,各位小夥伴大家好,我是小棧君。
今天的分享主題是關於Springboot主題分享,其實在寫這個系列主題之前有想過一些關於分享技術的順序問題,因為我在創建「IT乾貨棧」這個公眾號之初就是想要分享關於後端技術的一些乾貨。
想要各位感興趣的小夥伴都能夠學習到或是能夠溫故知新一些技術或者技能點,後端技術並不限於java還涉足於go、Python、區塊鏈、人工智能和大數據等方面。
所以想將這些學習到的東西做成筆記分享給各位,避免實戰中的踩坑,共同進步。
正是因為涉及的技術較多,反而在系列主題分享的時候會產生一絲顧慮,思前想後還是決定各個語言的教程系統的穿插發佈。
如果小夥伴有比較好的建議或者意見歡迎給小棧君進行留言。搜索「IT乾貨棧」,每天都有有趣且實用的乾貨等你,我們共同進步,一起成長!
1、Springboot前傳
閑話不多說,我們這段時間圍繞着Springcloud微服務框架的基石Springboot進行系列講解。
後期會對SpringCloud微服務的技術進行從零到一的完整講解和實戰。讓大家對關於java後端技術有更加深入和具體的理解,循序漸進的掌握好技術。
java開發者之於Spring好比是騎士之於矛,戰士之於劍。在java開發者必掌握的框架排行前三的就是Spring家族系列。
因為其中包含的IOC和AOP兩大利器大大簡化了軟件開發的程度複雜性,並以其優良的設計模式在眾多的開源框架中奪得頭籌,屬於名副其實的老大哥。
那麼作為Spring家族的一重要成員,在目前以java語言開發的軟件的不完全統計中以Springboot作為框架的已經涵蓋了90%以上。
所以Spring的官網上也將Springboot放在了C位。
(圖片來源於Spring官網)
算下來Spring已經經歷了4個時代的變遷,Spring1.0時代主要是針對於通過XML的方式配置實體Bean。如圖所示:
隨着JDK的發展,Spring2.X進入了一個新的時代,可以通過註解對於Bean進行聲明和注入,大大減少了XML的配置文件的體量,加速了軟件開發的速度。
但是針對於資源文件和數據庫的配置文件當然是十分推薦寫在XML中的。從Spring3.x開始提供了Java配置方式,使用Java配置方式可以更好的理解你配置的Bean。
現在我們就處於這個時代,並且Spring4.x和Spring boot都推薦使用java配置的方式。
如果所示,在這個類上我們使用了三個註解,第一個@Configuration 作用在類上,相當於一個XML的配置文件。
這個標誌的含義就是在容器啟動的時候會自動加載這個類,@Bean 作用於方法上,其類比作用就和在XML中配置的Bean一樣。
當然還有一個@LoadBalanced 註解方法屬於在Springcloud中的負載均衡,這個在後面一個專題會詳細進行講解。
其實隨着互聯網的發展和公司產品的迭代,大家可以發現在技術選型上我們也是經歷了從struts 到 SpringMVC 然後到Springboot 和Springcloud這一變遷,其實萬變不離其宗。
Spring內核機制和設計模式依舊是我們需要研究和學習的。畢竟Spring全家桶已經佔據了大半江山。
2、Springboot初探
官方解釋springboot 是可以簡單輕鬆的創建單體以及企業級應用項目,你可以「直接運行」這些運用程序。
並且我們也對Spring平台和第三方庫有自己的簡介,你可以輕鬆入門,許多Springboot項目只需要非常少的配置。綜上所述Springboot就是採用了「習慣優於配置」,化繁為簡。
3、構建項目
既然官方所講的構建一個項目需要極少的配置,那麼我們就進行實戰一下是否真的如官方所言呢?
為了方便測試,首先我們在Spring官網上進行創建我們的項目框架
官方網站 :https://start.spring.io/
其實大家都可以都可以看到Spring官網可以很輕鬆的創建你想要的項目,並且在語言類型上支持了Maven和gradle ,語言的類型上也同樣支持java、kotlin、Groovy。
版本方面有2.20、2.19、2.18 三個版本可供選擇。並且對於第三方插件支持也是像官網上所講的一樣簡單上手。
將預先設定好的項目下載下來可以用eclipse或idea工具打開即可看到我們項目的結構目錄和相關的引用
從pom文件可以看出 Springboot的項目結構相對於我們傳統的jar包引用和以前用pom文件的構建是簡化了不少,並且在項目結構中已經生成了相關的啟動類。
直接使用run方法就可以啟動項目。是不是很簡單呢,大家也可以試試哦
今天的分享就到這裡就結束啦,如果你喜歡我的分享,麻煩你點擊再看,分享或留言,我是小棧君,我們下期見,拜了個拜~
本文由博客一文多發平台 OpenWrite 發佈!