Spring Boot 和 Grails 的不同點 - CodeWeblog.com
http://www.codeweblog.com/spring-boot-%E5%92%8C-grails-%E7%9A%84%E4%B8%8D%E5%90%8C%E7%82%B9/
最近花了些時間了解了一下 Spring Boot 這個新框架躁锁。這個框架提供了快速開發(fā)基于 Spring Framework 的應用的功能。同樣,SpringSource 旗下還有另一個用于 Web 應用快速開發(fā)的框架,就是 Grails栈虚。初看來這兩個框架有很多相似的地方揭厚,所以可以將這兩個框架做一下對比。
Spring Boot 強調自運行建峭;Grails 應用則需要打包成 WAR 來運行
當然 Grails 應用也能通過內嵌的 Tomcat 或 Jetty 容器來運行琉挖,但這主要用于開發(fā)環(huán)境启泣。在用于生產環(huán)境時,Grails 應用仍需要打包成 WAR 包示辈。而 Spring Boot 的應用則主要是打包成可自運行的 JAR 包寥茫。
Spring Boot 側重開發(fā) RESTful Web Service;Grails 則提供了全面的 Web 應用支持矾麻,包括頁面標簽纱耻、Web 視圖等等
Spring Boot 使用 Maven 和 Gradle 作為構建工具;Grails 使用自有的構建工具
Maven 和 Gradle 顯然是兩個最為廣泛使用的構建工具险耀。從構建工具的角度看弄喘,Spring Boot 更有通用性。而如果要用 Maven 去構建 Grails 應用倒也不難甩牺,但是需要一些并不復雜的額外工作蘑志。不過如果想用 Gradle 構建 Grails 應用那就更加麻煩一些了。
PS. 在使用 Maven 構建 Grails 應用時,我發(fā)現(xiàn) Grails 的 grails create-pom
命令生成的 pom.xml 文件中缺少 servlet-api 的 dependency卖漫。需要手工添加,否則在用 Maven 編譯打包時都會爆出 NoClassFound 的異常赠群。
Spring Boot 通過添加 starter-module 的依賴來擴展功能羊始;Grails 則通過插件
顯然前者更加通用
數(shù)據庫訪問方面
Grails 通過 GORM 使得對關系型數(shù)據庫支持更加的全面,也更易用查描。Spring Boot 則將關系型數(shù)據庫和 NoSQL 數(shù)據庫一視同仁
總結
當構建 Web 應用時突委,首選的框架仍然是 Grails。(PS. 當然 Play! Framework 也是不錯的選擇冬三,但是我不喜歡 Scala)但是 Spring Boot 非常值得關注匀油。因為它關注于簡化現(xiàn)有的 Spring 應用的開發(fā),而不是一種全新的解決方案勾笆。Spring Boot 為現(xiàn)在越來越臃腫的 Spring 應用提供了新的希望敌蚜,從這個角度講,它要比 Grails 會有更廣泛的應用窝爪。
Spring Boot 是一陣小清新弛车。Grails 雖然依舊是一個非常好用的 Web 快速開發(fā)框架,但是因為它是一站式解決方案蒲每,所以不可避免的變得有些龐大了纷跛。