最近花了些时间了解了一下 Spring Boot 这个新框架。这个框架提供了快速开发基于 Spring Framework 的应用的功能。同样,SpringSource 旗下还有另一个用于 Web 应用快速开发的框架,就是 Grails。初看来这两个框架有很多相似的地方,所以可以将这两个框架做一下对比。
Spring Boot 强调自运行;Grails 应用则需要打包成 WAR 来运行当然 Grails 应用也能通过内嵌的 Tomcat 或 Jetty 容器来运行,但这主要用于开发环境。在用于生产环境时,Grails 应用仍需要打包成 WAR 包。而 Spring Boot 的应用则主要是打包成可自运行的 JAR 包。
Spring Boot 侧重开发 RESTful Web Service;Grails 则提供了全面的 Web 应用支持,包括页面标签、Web 视图等等Spring Boot 使用 Maven 和 Gradle 作为构建工具;Grails 使用自有的构建工具Maven 和 Gradle 显然是两个最为广泛使用的构建工具。从构建工具的角度看,Spring Boot 更有通用性。而如果要用 Maven 去构建 Grails 应用倒也不难,但是需要一些并不复杂的额外工作。不过如果想用 Gradle 构建 Grails 应用那就更加麻烦一些了。 PS. 在使用 Maven 构建 Grails 应用时,我发现 Grails 的 grails create-pom 命令生成的 pom.xml 文件中缺少 servlet-api 的 dependency。需要手工添加,否则在用 Maven 编译打包时都会爆出 NoClassFound 的异常。
Spring Boot 通过添加 starter-module 的依赖来扩展功能;Grails 则通过插件显然前者更加通用
数据库访问方面Grails 通过 GORM 使得对关系型数据库支持更加的全面,也更易用。Spring Boot 则将关系型数据库和 NoSQL 数据库一视同仁
总结当构建 Web 应用时,首选的框架仍然是 Grails。(PS. 当然 Play! Framework 也是不错的选择,但是我不喜欢 Scala)但是 Spring Boot 非常值得关注。因为它关注于简化现有的 Spring 应用的开发,而不是一种全新的解决方案。Spring Boot 为现在越来越臃肿的 Spring 应用提供了新的希望,从这个角度讲,它要比 Grails 会有更广泛的应用。 Spring Boot 是一阵小清新。Grails 虽然依旧是一个非常好用的 Web 快速开发框架,但是因为它是一站式解决方案,所以不可避免的变得有些庞大了。
|