groovy+grails+gradle开发

近期进了一家新公司,所用的技术栈就是:groovy+grails+gradle
技术介绍网上还是比较少的,我也是第一次接触;

groovy:

Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy也可以使用其他非Java语言编写的库(百度百科)
详细介绍&&教程:https://www.w3cschool.cn/groovy/groovy_overview.html

gradle:

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。(来源百度百科)

下载地址:https://services.gradle.org/distributions/
需要下载版本控制:SDKMAN

grails

这个本来一直都没明白,有一句话很能表述这个框架:
也就是他的设计理念:约定优于配置
官网:https://grails.org/
看到一篇文章挺好的:https://www.xuebuyuan.com/3252851.html

groovy+grails+gradle开发_第1张图片下面来实现一个简单的查询流程:
直接上图吧这样比较清晰:
groovy+grails+gradle开发_第2张图片需要在controllers中创建一个UrlMappings的groovy类
主要是用来存放范围路径的:相当于mvc中的@RequestMapping("/prizePool")找到相应的实现方法;

groovy+grails+gradle开发_第3张图片就是这种形式了;其中的的
resources: “bug”:在vies包中对应一个该名字的包;
includes: [‘save’,‘index’,‘show’,‘update’]:对应的是views包下的gsp文件:
groovy+grails+gradle开发_第4张图片补充一点就是:其中的 show对应Get(restFul) index(对应GET方法) save对应post方法 update对呀put方法
我们来看下简单的show方法:

views/show

model {
    Bug  bug
    ResultVO resultVO
}

json{
    status resultVO.status
    if (resultVO.status == 0) {
        code resultVO.code
        message resultVO.message
    } else {
        code 0
        result {
            id bug?.id
            name bug?.name
            memo bug?.memo

        }
    }
}

bugubugs.biz.BugController

def show(){
        Long id =params.long("id")
        ResultVO resultVO = new ResultVO()
        Bug bug =Bug.findById(id)
        if (bug){
            resultVO.status = 1
            resultVO.code=0
        }else {
            resultVO.status = 0
            resultVO.code =1
            resultVO.message="失败"
        }
        [bug: bug, resultVO: resultVO]
    }

这样就可以实现啦;
不用在数据库中新建数据库表,运行后自动在数据库中新键表,进行数据库操作;
BUG实体类写法:

class Bug {

    Long id

    String name
  
    Date dateCreated

    Date lastUpdated

    Byte status = ConstantEnum.BugStatus.NEW_CREATED.status//BugStatus

    static constraints = {
    }

    static mapping = {
        table('bug_bug')
        id generator: 'identity'
    }
}

你可能感兴趣的:(groovy+grails+gradle开发)