继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

第8章 Spring Boot集成Groovy,Grails开发

慕标5832272
关注TA
已关注
手记 1254
粉丝 231
获赞 1002

第8章 Spring Boot集成Groovy,Grails开发

本章介绍Spring Boot集成Groovy,Grails开发。我们将开发一个极简版的pms(项目管理系统)。

Groovy和Grails简介

Groovy简介

Groovy 是一种动态语言,它在 JVM 上运行,并且与 Java 语言无缝集成。

Groovy 可以大大减少 Java 代码的数量。在 Groovy 中,不再需要为字段编写 getter 和 setter 方法,因为 Groovy 会自动提供它们。不再需要编写 for Iterator i = list.iterator() 来循环遍历一系列的项;list.each 可以做相同的事情,而且看上去更简洁,表达更清晰。简言之,Groovy 就是 21 世纪的 Java 语言。[2]

Groovy 不会替代 Java 语言 — 它只是提供了增强。您可以很快地掌握 Groovy,因为说到底,Groovy 代码就是 Java 代码。这两种语言是如此兼容,甚至可以将一个 .java 文件重命名为一个 .groovy 文件 — 例如,将 Person.java 改为 Person.groovy — 从而得到一个有效的(可执行的)Groovy 文件(虽然这个 Groovy 文件并没有用到 Groovy 提供的任何语法)。

Grails简介

Grails是一套用于快速Web应用开发的开源框架,它基于Groovy编程语言,并构建于Spring、Hibernate等开源框架之上,是一个高生产力一站式框架。

Grails这个独特的框架被视为是提升工程师生产效率的动态工具,因为其干脆的API设计,合理的默认值以及约定架构。与java的无缝集成使得这个框架成为世界上众多框架中的首选。一系列强大的特性,如基于sping的依赖注入和各式各样的插件,可以提供创建现代基于web的app的所有需要的东西。

我们使用Grails框架。就像 Rails 与 Ruby 编程语言联系非常紧密一样,Grails 也离不开 Groovy。

DRY(Don't Repeat Yourself,不要重复自己)
约定优于配置(Convention over Configuration)

DRY和约定优先于配置的思想,是由Rails兴起并迅速被广泛接收和欣赏的Web框架新思路。Grails作为JEE世界的Rails,把这些最前沿的设计理念带入已显得陈旧的JEE社区,拥有鲜明突出的特点,以及由此带来的优秀的开发效率。

对Grails来说,Groovy是其能够实现灵活多变的快速开发,区别于其他运行于JVM之上的Web框架的核心技术。

Groovy的动态特性是其最大亮点,在这方面几乎不输于Ruby等其他热门的动态语言。[3]

Grails实现原理

  • 基于Spring MVC的控制器层

  • 构建于Gant 上的命令行脚本运行环境,内置Tomcat服务器,不用重新启动服务器就可以进行重新加载

  • 基于Spring的MessageSource核心概念,提供了对国际化(i18n)的支持

  • 基于Spring事务抽象概念,实现事务服务层[1]

Github:https://github.com/grails
官网:https://grails.org/

数据库的对象关系映射层使用GORM

我们使用 Grail 对象关系映射(Grails Object Relational Mapping,GORM)API 进行数据库层的持久化工作。

安装Grails 3 开发环境

浏览器访问 http://www.grails.org/Download,下载,解压,设置环境变量即可。具体步骤如下:

1.下载并解压 grails.zip。
2.创建一个 GRAILS_HOME 环境变量。
3.将 $GRAILS_HOME/bin 添加到 PATH中。

如果你的电脑上有SDKMAN! (The Software Development Kit Manager),可以直接命令行自动安装Grails最新稳定版本:

$ sdk install grails

安装完毕,验证一下:

$ grails -v| Grails Version: 3.2.8
| Groovy Version: 2.4.10| JVM Version: 1.8.0_40

OK, grails开发环境搞定。我们可以看到,grails依赖的Groovy,JVM环境版本。

创建Grails项目

让我们来体验JVM上的Ruby on rails式的命令行自动工程生成的快感吧!

命令行直接运行:

$ grails create-app pms
Resolving dependencies..| Application created at /Users/jack/book/pms

我们就生成了一个grails工程demo,目录如下:

.
├── build.gradle├── gradle│   └── wrapper│       ├── gradle-wrapper.jar│       └── gradle-wrapper.properties├── gradle.properties├── gradlew├── gradlew.bat├── grails-app│   ├── assets│   │   ├── images│   │   │   ├── apple-touch-icon-retina.png│   │   │   ├── apple-touch-icon.png│   │   │   ├── favicon.ico│   │   │   ├── grails-cupsonly-logo-white.svg│   │   │   ├── skin│   │   │   │   ├── database_add.png│   │   │   │   ├── database_delete.png│   │   │   │   ├── database_edit.png│   │   │   │   ├── database_save.png│   │   │   │   ├── database_table.png│   │   │   │   ├── exclamation.png│   │   │   │   ├── house.png│   │   │   │   ├── information.png│   │   │   │   ├── shadow.jpg│   │   │   │   ├── sorted_asc.gif│   │   │   │   └── sorted_desc.gif│   │   │   └── spinner.gif│   │   ├── javascripts│   │   │   ├── application.js│   │   │   ├── bootstrap.js│   │   │   └── jquery-2.2.0.min.js│   │   └── stylesheets│   │       ├── application.css│   │       ├── bootstrap.css│   │       ├── errors.css│   │       ├── grails.css│   │       ├── main.css│   │       └── mobile.css│   ├── conf│   │   ├── application.yml│   │   ├── logback.groovy│   │   └── spring│   │       └── resources.groovy│   ├── controllers│   │   └── pms│   │       └── UrlMappings.groovy│   ├── domain│   ├── i18n│   │   ├── messages.properties│   │   ├── messages_cs_CZ.properties│   │   ├── messages_da.properties│   │   ├── messages_de.properties│   │   ├── messages_es.properties│   │   ├── messages_fr.properties│   │   ├── messages_it.properties│   │   ├── messages_ja.properties│   │   ├── messages_nb.properties│   │   ├── messages_nl.properties│   │   ├── messages_pl.properties│   │   ├── messages_pt_BR.properties│   │   ├── messages_pt_PT.properties│   │   ├── messages_ru.properties│   │   ├── messages_sv.properties│   │   ├── messages_th.properties│   │   └── messages_zh_CN.properties│   ├── init│   │   └── pms│   │       ├── Application.groovy│   │       └── BootStrap.groovy│   ├── services│   ├── taglib│   ├── utils│   └── views│       ├── error.gsp│       ├── index.gsp│       ├── layouts│       │   └── main.gsp│       └── notFound.gsp├── grails-wrapper.jar├── grailsw├── grailsw.bat├── settings.gradle└── src
    ├── integration-test
    │   └── groovy
    ├── main
    │   ├── groovy
    │   └── webapp
    └── test
        └── groovy29 directories, 62 files

这真的是一键生成。

我们可以直接使用下面的命令运行这个工程:

$ grails run-app

它会自动下载gradle-3.4.1-bin.zip(通常会很慢):

| Resolving Dependencies. Please wait...
Downloading https://services.gradle.org/distributions/gradle-3.4.1-bin.zip

如果我们本地有gradle环境,我们也可将此工程导入idea,配置一下本地的gradle环境。如下图所示:

webp



作者:东海陈光剑
链接:https://www.jianshu.com/p/4a9027bd561d


打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP