前言
今天学习了一下本章,看到标题我先百度了一下,Grails是什么,也是第一次接触吧,然后查看了对Grails的描述:
Grails是一套用于快速Web应用开发的开源框架,它基于Groovy编程语言,并构建于Spring、Hibernate等开源框架之上,是一个高生产力一站式框架。
文章中已经告诉我们Springboot是支持Grails对象关系映射和Groovy服务器页面的Grails的特性,还会看到Grails 3是如何基于SpringBoot重写的。针对章节介绍我们开始书中案例的demo练习:
使用GORM进行数据持久化
package com.zcw.grails
import grails.persistence.Entity
@Entity
class Book {
Reader reader
String isbn
String title
String author
String description
}
作者说Grails里最让人着迷的恐怕就是GORM了,我们可以理解最核心就是它,而且上手操作特别简单,GORM将数据库相关工作简化到和声明要持久化的实体一样容易。查看我们上面的代码,跟我们以往通过java代码进行创建的类,这里没有分好,public、private修饰符、setter和getter方法或其他java中常见的代码操作,查看文章告诉我们Grails的@Entity注解让我们这个类变成为GORM实例,我们看似简单其实实体可干了不少事,包括将对象映射到数据库,为Book添加了持久化方法,通过这些方法可以存取图书。同时书中告诉我们,如果想在我们springboot项目中使用这么骚气的技术,可以在maven项目中添加如下依赖,就可以了:
<!--使用Groovy语言-->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all-minimal</artifactId>
<version>1.5.8</version>
</dependency>
注意一点:
如果想创建Groovy项目时,需要配置环境变量—题外话
创建GORM Reader实体
package com.zcw.grails
import grails.persistence.Entity
import org.springframework.security.core.GrantedAuthority
import org.springframework.security.core.userdetails.UserDetails
@Entity //表示这是一个实体类
class Reader implements UserDetails{
String username
String fullname
String password
//实现UserDetails
@Override
Collection<? extends GrantedAuthority> getAuthorities() {
return null
}
@Override
boolean isAccountNonExpired() {
return false
}
@Override
boolean isAccountNonLocked() {
return false
}
@Override
boolean isCredentialsNonExpired() {
return false
}
@Override
boolean isEnabled() {
return false
}
}
通过上面两个demo我们看到,使用Groovy语言可以与springboot项目无缝对接,其实书中已经给我们演示了,很多代码,也算是一个完整的CRUD流程,总体感觉还是挺不错的,上手非常的快,以后在项目开发中,可以尝试玩一下,这些骚操作,作者还给我们介绍了Groovy语言的几个方面吧:
- 定义领域模型
- 开发Grails控制器
- 创建视图
等等吧,总体还是觉得挺不错的,大家也可以尝试的使用,因为之前在项目开发中使用过其中的一个jar包就是令牌桶的这个jar包,没有像今天这么通过demo去细细的学习这个语言,这个语言的语法我已经基本摸透,就等有时间在项目中直接开发。
创建Groovy项目
使用IDEA 开发工具,
图上标红的地方是我们下载groovy安装的解压的地方,解压完成以后,我们还需要配置环境变量,这个情况大家不要忘记,其实他跟java配置是一样的,只是命令不一样,如果大家感兴趣的话,可以自行百度groovy语言的语法操作。
总结
通过本章的学习,特别是作者在书中提出的观点,Grails和SpringBoot 都旨在让开发者的生活更简单,这一点确实,因为我们在创建实体类时,我们不用编写他的get.set方法,当然我们springboot项目现在使用lombok注解也可以解决,总体来说,这个语言的一些语法其实有很多我们大家去学习,我看官方文档介绍这个语言有很多新的特性,再加上可以跟java无缝对接,这样我们也能很好的去实现,其实目前很多论坛都在说GORM是springboot的新特性,能让我们大家直接对领域模型执行持久化操作,消除了对模型仓库的需求,在书中我们认识了Grails3 ,这个框架可以使用springboot的全部特性,包括自动配置。