基於Spring Boot和Spring Cloud實現微服務架構學習(二)-Spring Boot總結


引用

引用某位技術大牛推薦的技術成長方法:
        1)我們要經常關注技術網站,如csdn,iteye,infoq等;
  2)要努力提高英語水平,學習研究第一手的技術資料;
  3)對新技術要保持飢餓和敏感,一旦有新技術要主動的了解和學習;
  4)學會對技術進行高層次的總結和理解,在相似的新技術出現時可以類比學習快速上手;
  5)善於使用搜索引擎檢索技術和問題,因為技術資料英文的較多,推薦使用谷歌搜索所有問題、Github檢索示例代碼、StackOverflow檢索報錯信息。
  6)善於利用成熟的第三方庫,當使用一項新技術的時候,不要想着自己一點點啃,要善於利用已經成熟的第三方庫,不要重復造輪子;

介紹

回歸主題,Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。Spring Boot的目標不在於為已解決的問題域提供新的解決方案,而是為平台帶來另一種開發體驗,從而簡化對這些已有技術的使用。

下圖顯示 spring Boot 在 Spring 生態中的位置:


文章中我不會講訴如何快速搭建Spring Boot項目,一是因為搭建非常簡單,二則是網上快速應用helloworld的demo太多了,我覺的寫了也沒有意義,我希望的重點是告訴大家,為什么要用Spring Boot,什么時候用它,以及用它會帶來什么樣的好處和缺點。了解了這些之后,你最后是去官網的導讀部分跟着講解再實際操作一遍,體驗一下它強大的快速搭建能力和使用魅力(http://projects.spring.io/spring-boot/)。

Spring Boot學習要求

  • Maven/Gradle
  • Git
  • Docker
  • Docker Compose
學習spring boot最好要有Spring的使用基礎,當然,spring boot本身也能讓你快速的入門使用它,但如上面說的,一旦你碰到問題,沒有spring使用基礎,你會變得十分被動,加上文檔很少,網上基本找不到bug資料,所以你懂的;然后就是要求你多少了解Maven或者grade配置,spring boot是基於這些實現項目依賴的管理;最后,說說IDE工具,這也是個人使用習慣,個人現在比較推薦大家學習使用下IntelliJ IDEA,雖然他和常用的Eclipse工具有所不同,但使用起來,它的索引機制,會讓我們的開發體驗相當順暢(除了第一次打開建立索引非常耗時外)。

對於Git、Docker容器技術,其與Spring Boot的關聯度非常的高,大部分的應用都是托管在GitHub上,然后,因為Spring Boot開發的應用大多服務與微服務架構,而這種架構通常依托與Docker實現快速部署和compose一鍵部署,所以了解和學習他們也變得非常有必要。至於后面要學習的Docker部署集群管理工具Mesos或者Kubernetes等,其實也是要掌握的,這里推薦coding(碼市)網站,上面有很多技術博客講解實際開發者使用體驗和技巧。

考慮這么國外的資源,國內下載時好時慢,所以推薦修改配置指向國內資源,如Maven庫可以用開源中國的(連接aliyun和jboss等資源的settings.xml文件可以在我上傳資源下載),還有docker的所有鏡像在DaoCloud下,他們同時提供了一個Docker Hub加速器工具,可以永久修改docker默認鏡像default的資源下載地址(http://get.daocloud.io),而且DaoCloud實時更新官網資源,承諾永久免費,所以廣告就打這么多,推薦個人使用。

Spring Boot的特性

1)快速構建獨立Spring應用程序
2)嵌入式Tomcat,Jetty容器,無需部署WAR包
3)簡化Maven及Gradle配置
4)盡可能的自動化配置Spring,無代碼生成和xml配置
5)直接植入產品環境下的實用功能,比如度量指標、健康檢查及擴展配置等
6)對主流開發框架和工具鏈做無配置集成

Spring Boot優缺點

優點:

1)解決配置繁瑣的問題,最大化的實現convention over configuration(約定大於配置);
2)springboot 要解決的問題, 精簡配置是一方面, 另外一方面是非常方便的讓spring生態圈和其他工具鏈整合(比如redis, email, elecsearch)
3)有Pivotal和Netflix這兩個干爹罩着, 個人認為SpringBoot(由Pivotal團隊提供)前途一片光明(國內的一些大廠其實早就再用了)

缺點:

1)因為剛出不久,文檔略少,加上對Spring Boot的auto configuration loading等機制的封裝, 給人感覺入門容易,但是如果沒有完整學習spring的體系,碰到問題就一臉懵逼。據我所知,很多玩spring boot的人連怎么打開底層包的log都不知道,怎么可能能發現問題呢?比如很多人會碰到啟動時不知道框架哪里抽風,會導致系統無法啟動,報的錯都很神奇,搜完百度和谷歌和stackflow都沒解決方案。(后來有人說@DependsOn注解就能搞定,沒試過不清楚行不行);
2)版本迭代速度太快(最近太火了), 一些模塊改動很大, 比如 springboot-test的1.3.5 vs 1.4

總結

Spring boot給我的感覺是入門容易,深入難。它實現了我們之前常用的Spring技術,並通過零配置或者說約定大於配置的方式將其集成在一起,方便開發者快速開發應用,這種封裝的方式有好有壞,當然操作變簡單這是最真實的體驗。Boot的誕生依靠的是近幾年SOA式的微服務架構的流行,也正是這個原因,他多數應用在微服務中充當個體。

最后

下節我們將按照結構復雜的單一系統 > 微服務 > Docker化 > 自動化,演變思路,講解過渡到Spring cloud使用上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM