鏈接:https://www.zhihu.com/question/53729800/answer/138121021
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
最近半年新項目都使用springboot搞起,可以快速做原型,有一些實戰經驗。
--------------------------------------------------------------------------------------
先科普下springboot跟spring framework的關系吧。我是個愛講故事的程序員~~
spring framework就好比一個大型的電子元件生產公司,它生產的元件性能都很優秀,但是坊間使用它的元件的作坊,拿到手之后還得搞一些電焊,銜接,可能要花個10天半個月最后做成一個家電或者機器人(不管啥了,只是例子)。
有一天這個公司就宣布,我們現在提供了一些功能模塊,比如攝像頭傳感器,擴音器傳感器,壓力傳感器,它們都是統一的usb接口的,只需要插線連接就能使用了。這樣是不是大大降低了坊間小作坊的人力物力各種力,5分鍾就拼湊出一個機器人了有木有。
看出啥來了嗎?各種電子元件就是springframe上面關於其他諸如mq,websocket, zookeeper, redis的整合代碼包,沒有springboot starter我們還是得自己去調用各種不同的接線頭,芯片端口去接線調試,還可能把芯片弄壞,弄燒了。。。
springboot提供了基於spring 的各種starter(傳感器)的快速啟動,搭建框架的便利;
spring-boot-starter-xxx 就是上面說的各種傳感器,對各種芯片的封裝,提供簡單統一的調用,配置方式。 你去學會發現只需要加入starter依賴,就能使用默認配置了快速把新功能加入到項目中了。
比如再項目中加入這個依賴:
<!-- 聲明使用 Spring Boot 這個‘船塢’ --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.0.0.RC1</version> </parent> <dependencies> <!-- 告訴程序:請在這個‘船塢’上面裝一個炫酷的100k鑽石顯示屏 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-其他想要的吊炸天的傳感器</artifactId> </dependency> </dependencies>
如果不夠各個starter還能過通過統一的配置方式去配置,調試(tuning),最后發布為一個jar包,利用springboot的機制去加載鏈接啟動各個組建,提供一個完整的服務。
當然不止boot-starters, springboot有四大神器:auto-configuration、starters、cli、actuator,涵蓋了配置,鏈接,統一調用操作,性能監控的完善產品圈,值得學習。
--------------------------------------------分割線,說一些書 -------------------------------------------
這里整了一個最簡單的web應用,HelloWorld看這里 :levinliu/springboot-helloworld 。 其實每次學習新技術新框架,建議先去看她官方提供技術博客,運行她的sample代碼。
再說說一些看過的spring資料吧,官方的springboot reference已經講的很不錯了,上面也說了。
有空可以看看源代碼(我也在計划中),建議先看一些書,正在使用微信讀書看spring源碼深度解析,下面的書也是微信讀書認真看完了的。
書籍的話,有兩本我都看完了的,
第一本是《springboot揭秘:快速構建微服務體系》,這書講的是關於springboot去快速編寫微服務的案例,更側重於各式各樣微服務的實踐,側重於橫向擴展,圍繞微服務如何去做完事的后期監控,運維的一些介紹。
第二本《深入實踐springboot》這本偏向一個完善高性能應用的開發全鏈路實踐,側重於縱向擴展,比如說做一個完整的web系統,從一個用戶管理服務開始拓展,用redis做緩存,介入分布式文件系統,再引入一些springcloud的組件做集群服務發現等,系統多了再做sso。我比較喜歡的一種循序漸進的知識網絡剖析方式。
兩本書都會對springboot的源碼進行介紹分析,還行,覆蓋了幾個核心的接口。
你懂的,源碼解析有個度,別人書里說多了,把書質量拉下去了,說少了表達不出來。
