鏈接:https://www.zhihu.com/question/39483566/answer/246333825
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
做微服務快3年了,目前用的是spring boot,spring cloud 全家桶。
剛開始在公司推廣時,阻力還是非常大,其他部門熱衷dubbo,但是現在趨勢已經很明朗了,spring將會一統江湖。他們部門現在開始重寫代碼,也用spring全家桶。
注解代替xml配置是一種趨勢,這從servlet3.0支持注解,也能看出來。
spring boot用的所有東西,包括executable war, devtools,都是已有的成熟技術,但是它選擇了最合適的方式,集合在一起。
就像iphone一樣,觸屏技術,指紋識別,臉部識別,它都不是原創,但它用了,就能快速推廣。
舉個例子
1 spring boot默認使用的是logback,可能很多人習慣了用log4j,不理解這一點。
logback和log4j的開發者是一個人,logback相當於log4j 2.0,它解決了log4j一個難以解決的問題,
根據profile環境,自動切換日志級別(DEBUG, INFO, WARN)。
我在dev測試環境,用DEBUG級別日志。prod生產環境用的WARN日志。
2 spring boot 默認對liquibase進行了配置, 初次啟動會檢測liquibase的配置文件,配置錯誤會啟動失敗。
很多人不知道什么是liquibase,這是一個好東西,它解決了數據庫版本管理的問題。
很多年前的數據庫變更,需要准備腳本,人工記錄日志。liquibase在數據庫自動記錄版本號,還可以容易的回退版本,這在人工時代是很難的。
3 spring boot對自定義配置非常友好,可以配置在application.yml,或者Config類。spring boot的整體思想是,有自定義的,自定義優先,否則走自動的默認配置。
4 spring boot官方提供的sample都非常簡潔易用,實際上我多數時候都直接跑它的sample,不理解的去看文檔。像iphone一樣傻瓜易用,這是非常難得的。