引用
引用某位技術大牛推薦的技術成長方法:1)我們要經常關注技術網站,如csdn,iteye,infoq等;
2)要努力提高英語水平,學習研究第一手的技術資料;
3)對新技術要保持飢餓和敏感,一旦有新技術要主動的了解和學習;
4)學會對技術進行高層次的總結和理解,在相似的新技術出現時可以類比學習快速上手;
5)善於使用搜索引擎檢索技術和問題,因為技術資料英文的較多,推薦使用谷歌搜索所有問題、Github檢索示例代碼、StackOverflow檢索報錯信息。
6)善於利用成熟的第三方庫,當使用一項新技術的時候,不要想着自己一點點啃,要善於利用已經成熟的第三方庫,不要重復造輪子;
介紹
回歸主題,Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。Spring Boot的目標不在於為已解決的問題域提供新的解決方案,而是為平台帶來另一種開發體驗,從而簡化對這些已有技術的使用。下圖顯示 spring Boot 在 Spring 生態中的位置:
Spring Boot學習要求
- Maven/Gradle
- Git
- Docker
- Docker Compose
對於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